next up previous contents
Next: Une solution au problème Up: Les sémaphores : Dijkstra Previous: Les sémaphores : Dijkstra

Définition

Une structure de données
type semaphore = (n : entier; l : liste de processus);
manipulée uniquement par les actions atomiques wait et signal.
procedure wait(var S : semaphore)         procedure signal(var S : semaphore)
debut                                     debut
S.n := S.n - 1;                           S.n := S.n + 1;
si (S.n < 0) alors debut                  si (S.n <= 0) alors debut
        ajouter(moi,S.l);                         enlever(P,S.l);
        block;                                    wakeup(P);
        fin                                       fin
fin                                       fin



Alain GRIFFAULT
2002-02-11