Provided by:
manpages-fr_3.32d0.2p4-1_all 
NOM
sem_overview - Panorama des semaphores POSIX
DESCRIPTION
Les semaphores POSIX permettent aux processus et aux threads de se
synchroniser.
Un semaphore est un entier dont la valeur ne peut jamais etre negative.
Deux operations peuvent etre effectuees : incrementer la valeur du
semaphore de 1 (sem_post(3)), ou decrementer la valeur du semaphore de
1 (sem_wait(3)). Si la valeur courante est 0, une operation sem_wait(3)
bloque jusqu'a ce que la valeur devienne strictement positive.
Les semaphores POSIX sont de deux types : les semaphores nommes et les
semaphores anonymes.
S'emaphores nomm'es
Un semaphore nomme est identifie par un nom de la forme
/un_nom ; c'est-a-dire un chaine terminee par un caractere nul
pouvant avoir jusqu'a NAME_MAX-4 (251) caracteres, commencant
par une barre oblique (<< / >>) suivie d'un caractere ou plus,
aucun de ces derniers n'etant une barre oblique. Deux processus
peuvent utiliser un meme semaphore nomme en passant le meme nom
a sem_open(3).
La fonction sem_open(3) cree un nouveau semaphore nomme ou en
ouvre un existant. Apres l'ouverture de ce semaphore, il peut
etre utilise avec sem_post(3) et sem_wait(3). Lorsqu'un
processus a fini d'utiliser le semaphore, il peut utiliser
sem_close(3) pour le fermer. Lorsque tous les processus ont
termine de l'utiliser, il peut etre supprime du systeme avec
sem_unlink(3).
S'emaphores anonymes (s'emaphores en m'emoire)
Un semaphore anonyme n'a pas de nom. Il est place dans une
region de la memoire qui est partagee entre plusieurs threads
(s'emaphore partag'e par des threads) ou processus (s'emaphore
partag'e par des processus). Un semaphore partage par des threads
est place dans une region de la memoire partagee entre les
threads d'un processus, par exemple une variable globale. Un
semaphore partage par des processus doit etre place dans une
region de memoire partagee (par exemple un segment de memoire
partagee System V cree avec shmget(2), ou un objet de memoire
partagee POSIX cree avec shm_open(3)).
Avant son utilisation, un semaphore anonyme doit etre initialise
avec sem_init(3). Il peut ensuite etre utilise avec sem_post(3)
et sem_wait(3). Lorsque le semaphore n'est plus necessaire, et
avant que la memoire ou il est place ne soit liberee, le
semaphore doit etre detruit avec sem_destroy(3).
Le reste de cette section decrit certains details specifiques a
l'implementation Linux des semaphores POSIX.
Versions
Avant le noyau 2.6, Linux ne proposait que les semaphores anonymes
partages par des threads. Sur un systeme Linux 2.6 avec une glibc
fournissant l'implementation des threads NPTL, une implementation
complete des semaphores POSIX est fournie.
Persistance
Les semaphores POSIX nommes sont persistants dans le noyau : s'il n'est
pas supprime avec sem_unlink(3) un semaphore existe tant que le systeme
n'est pas eteint.
'Edition des liens
Les programmes utilisant l'API des semaphores POSIX doit etre compile
avec cc -lrt pour etre lie avec la bibliotheque temps-reel, librt.
Acc'eder aux s'emaphores nomm'es par le syst`eme de fichiers
Sous Linux, les semaphores nommes sont crees sur un systeme de fichiers
virtuel, en general monte sur /dev/shm, avec des noms de la forme
sem.un_nom (ce qui explique que les noms des semaphores soient limites
a NAME_MAX-4 plutot qu'a NAME_MAX caracteres).
Depuis Linux 2.6.19, il est possible de placer des listes de controle
d'acces sur les fichiers de ce repertoire au niveau groupe et
utilisateur.
CONFORMIT'E
POSIX.1-2001.
NOTES
Les semaphores System V (semget(2), semop(2), etc.) sont une API de
semaphores plus vieille. Les semaphores POSIX fournissent une interface
plus simple et mieux concue que les semaphores System V. En revanche,
les semaphores POSIX sont moins largement disponibles que les
semaphores System V (surtout sur les systemes plus anciens).
EXEMPLE
Un exemple d'utilisation des diverses fonctions des semaphores POSIX
est donne dans sem_wait(3).
VOIR AUSSI
sem_close(3), sem_destroy(3), sem_getvalue(3), sem_init(3),
sem_open(3), sem_post(3), sem_unlink(3), sem_wait(3), pthreads(7)
COLOPHON
Cette page fait partie de la publication 3.32 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Julien
Cristau et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.