IPC System V : Sémaphore
|
Les sémaphores système V sont une généralisation des sémaphores de Dijkstra pour la gestion des accès concurrents à une ressource. Ces primitives permettent de réaliser de manière atomique un ensemble d'opérations sur un ensemble de sémaphores. Cette extension permet d'éviter les verrous mortels : tous les sémaphores désignés sont modifiés ou aucun. Chaque ensemble de sémaphores est repéré par une clef qui représente un tableau de sémaphores. Un sémaphore, en système V, est constitué de : * La valeur du sémaphore. Les opérations sont définies par une valeur entière interprétée comme suit: * Supérieure à zéro : La valeur du
sémaphore est augmentée de la valeur correspondante. Tous
les processus en attente d'une augmentation du sémaphores sont
réveillés. Dans l'exemple suivant on va utiliser le module IPC:SysV de CPAN, on aurait pu utiliser les commande C. Ce module est un module objet donc nous allons utiliser les méthodes applicables à un objet Semaphore. Exemple: Executer le programme suivant dans un shell
Le programme précédent est bloqué, éxecuter le code suivant dans un autre shell
|
||||||||||||||