Provided by: manpages-fr_2.80.1-1_all bug

NOM

       sem_overview - Panorama des sémaphores POSIX

DESCRIPTION

       Les  sémaphores  POSIX  permettent  aux  processus et aux threads de se
       synchroniser.

       Un sémaphore est un entier dont la valeur ne peut jamais être négative.
       Deux  opérations  peuvent  être  effectuées :  incrémenter la valeur du
       sémaphore de 1 (sem_post(3)), ou décrémenter la valeur du sémaphore  de
       1 (sem_wait(3)). Si la valeur courante est 0, une opération sem_wait(3)
       bloque jusqu’à ce que la valeur devienne strictement positive.

       Les sémaphores POSIX sont de deux types : les sémaphores nommés et  les
       sémaphores anonymes.

       Sémaphores nommés
              Un sémaphore nommé est identifié par un nom de la forme /un_nom.
              Deux processus peuvent  utiliser  un  même  sémaphore  nommé  en
              passant le même nom à sem_open(3).

              La  fonction  sem_open(3)  crée un nouveau sémaphore nommé ou en
              ouvre un existant. Après l’ouverture de ce  sémaphore,  il  peut
              être   utilisé   avec   sem_post(3)  et  sem_wait(3).  Lorsqu’un
              processus a fini  d’utiliser  le  sémaphore,  il  peut  utiliser
              sem_close(3)  pour  le  fermer.  Lorsque  tous les processus ont
              terminé de l’utiliser, il peut être  supprimé  du  système  avec
              sem_unlink(3).

       Sémaphores anonymes (sémaphores en mémoire)
              Un  sémaphore  anonyme  n’a  pas  de  nom. Il est placé dans une
              région de la mémoire qui est partagée  entre  plusieurs  threads
              (smaphore  partag  par  des  threads)  ou processus (smaphore
              partag par des processus). Un sémaphore partagé par des threads
              est  placé  dans  une  région  de  la mémoire partagée entre les
              threads d’un processus, par exemple  une  variable  globale.  Un
              sémaphore  partagé  par  des  processus doit être placé dans une
              région de mémoire partagée (par exemple un  segment  de  mémoire
              partagée  Système V  créé avec semget(2), ou un objet de mémoire
              partagée POSIX créé avec shm_open(3)).

              Avant son utilisation, un sémaphore anonyme doit être initialisé
              avec  sem_init(3). Il peut ensuite être utilisé avec sem_post(3)
              et sem_wait(3). Lorsque le sémaphore n’est plus  nécessaire,  et
              avant  que  la  mémoire  où  il  est  placé  ne soit libérée, le
              sémaphore doit être détruit avec sem_destroy(3).

       Le reste  de  cette  section  décrit  certains  détails  spécifiques  à
       l’implémentation Linux des sémaphores POSIX.

   Versions
       Avant  le  noyau  2.6,  Linux  ne proposait que les sémaphores anonymes
       partagés par des threads. Sur un  système  Linux  2.6  avec  une  glibc
       fournissant  l’implémentation  des  threads  NPTL,  une  implémentation
       complète des sémaphores POSIX est fournie.

   Persistence
       Les sémaphores POSIX nommés sont persistants dans le noyau : s’il n’est
       pas supprimé avec sem_unlink(3) un sémaphore existe tant que le système
       n’est pas éteint.

   Liaison
       Les programmes utilisant l’API des sémaphores POSIX doit  être  compilé
       avec cc -lrt pour être lié avec la bibliothèque temps‐réel, librt.

   Accéder aux sémaphores nommés par le système de fichiers
       Sous Linux, les sémaphores nommés sont créés sur un système de fichiers
       virtuel, en général monté sur /dev/shm,  avec  des  noms  de  la  forme
       sem.nom.

CONFORMITÉ

       POSIX.1-2001.

NOTES

       Les  sémaphores  Système V  (semget(2), semop(2), etc.) sont une API de
       sémaphores plus vieille. Les sémaphores POSIX fournissent une interface
       plus  simple et mieux conçue que les sémaphores Système V. En revanche,
       les  sémaphores  POSIX  sont  moins  largement  disponibles   que   les
       sémaphores Système V (surtout sur les systèmes plus anciens).

EXEMPLE

       Un  exemple  d’utilisation  des diverses fonctions des sémaphores POSIX
       est donné dans sem_wait(3).

VOIR AUSSI

       sem_close(3),     sem_destroy(3),     sem_init(3),     sem_getvalue(3),
       sem_open(3), sem_post(3), sem_unlink(3), sem_wait(3), pthreads(7)

COLOPHON

       Cette  page  fait  partie  de  la  publication 2.80 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

       Veuillez   signaler   toute   erreur   de   traduction  en  écrivant  à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».