debut
tant que vrai faire debut
tant que feu = rouge faire rien;
feu := rouge;
Section Critique;
feu := vert;
Section Non Critique
fin
fin
Les 2 processus peuvent être ensemble en S.C
debut
tant que vrai faire debut
Flag[i] := true;
tant que Flag[j] faire rien;
Section Critique;
Flag[i] := false;
Section Non Critique
fin
fin
Les 2 processus ne peuvent pas être ensemble en S.C
Il n'y a pas d'attente s'il n'y a pas de compétition.
Il y a possibilité d'attente infinie (famine).
la preuve est faite par la construction du graphe du comportement des deux processus.
debut
tant que vrai faire debut
tant que tour = j faire rien;
Section Critique;
tour := j ;
Section Non Critique
fin
fin
2 processus ne peuvent pas être ensemble en S.C
Il n'y a pas d'attente infinie.
Il peut y avoir attente s'il n'y a pas de compétition. C'est un algorithme d'alternance (jeton).
debut
tant que vrai faire debut
Flag[i] := true;
tour := i ;
tant que (Flag[j] et tour = i) faire rien;
Section Critique;
Flag[i] := false;
Section Non Critique
fin
fin
La preuve sera faite en TD