Man page - sem_overview(7)

Packages contains this manual

Available languages:

en fr pl ja ru ro

Manual

sem_overview

NOM
DESCRIPTION
Versions
Persistance
Liaison
Accéder aux sémaphores nommés par le systÚme de fichiers
NOTES
EXEMPLES
VOIR AUSSI
TRADUCTION

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 ; c’est-Ă -dire une chaĂźne terminĂ©e par un caractĂšre nul pouvant avoir jusqu’à NAME_MAX -4 (251) caractĂšres, commençant par une barre oblique (« / ») suivie d’un caractĂšre ou plus, aucun de ces derniers n’étant une barre oblique. 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 ( sĂ©maphore partagĂ© par des threads ) ou processus ( sĂ©maphore 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 System V créé avec shmget (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 Linux 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.

Persistance

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 doivent ĂȘtre compilĂ©s avec cc -pthread pour ĂȘtre liĂ©s 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. un_nom (ce qui explique que les noms des sĂ©maphores soient limitĂ©s Ă  NAME_MAX -4 plutĂŽt qu’à NAME_MAX caractĂšres).

Depuis Linux 2.6.19, il est possible de placer des listes de contrĂŽle d’accĂšs sur les fichiers de ce rĂ©pertoire au niveau groupe et utilisateur.

NOTES

Les sémaphores System 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 System V. En revanche, les sémaphores POSIX sont moins largement disponibles que les sémaphores System V (surtout sur les systÚmes plus anciens).

EXEMPLES

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_getvalue (3), sem_init (3), sem_open (3), sem_post (3), sem_unlink (3), sem_wait (3), pthreads (7), shm_overview (7)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org> et David Prévot <david@tilapin.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .