Provided by: manpages-fr_3.32d0.2p4-1_all bug

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> >>.