Master Info - Info 0701 1
1 Exclusion Mutuelle
1.1 Algorithmes bas´es sur les permissions
Algorithme 1 Alorithme de Ricart Agrawal, local au site i
etat S E, SC, S ´ettat du site i
h0 entier date des demandes
last 0 entier date de la derniere demande
attendu φensemble de sites qui attendent la permission
differe φensemble de sites qui retardent l’envoi d’une perm
priorit f aux booleen si iprioritaire ou non
demande d’entree en section critique
etat E
last last + 1
attendu R
for all jattendu do
Envoi msg(dem, (lasti, i)) `a j
end for
while attendu 6=φdo
reception msg(perm(j)) de j
attendu attendu j
end while
etati SC
Sortie de section critique
etat S
for all jdiffere do
Envoi msg(perm(i)) `a j
end for
differei φ
R´eception de msg(dem, (h0, j)) de j
hmax(h, h0)
priorit (etat 6=sortie)(last, i)<(h0, j)
if priorit =vrai then
differe differe j
else
Envoi msg(perm(i)) `a j
end if
Liste d’Algorithmes 2014-2015/ Thibault BERNARD
Master Info - Info 0701 2
Algorithme 2 Algorithme de Carvalho Roucairol, local au site i
R− {jVtel que ine possedes pas perm(i, j)}
etat S E, SC, S etat du site i
h0 entier date des demandes
last 0 entier date de la derniere demande
differe φensemble de sites qui retardent l’envoi d’une permission
priorit f aux booleen si iprioritaire ou non
Demande d’entree en section critique
etat E
last h+ 1
for all jRdo
Envoi msg(dem(last, i) `a j
end for
while R6=φdo
Reception msg(perm(i, j)) de j
RR\{j}
end while
etat SC
Sortie
etat S
for all jdiffere do
Envoi msg(perm(i, j)) `a j
end for
Rdiffere
differe − ∅
Reception de msg(dem, (h0, j)) de j
hmax(hi, h0)
priorit (etat =SC)[(etat =E)(last, i)<(h0, j)]
if priorit =V RAI then
differe differe ∪ {j}
else
Envoi msg(perm(i, j)) `a j
RR∪ {j}
if etat =Ethen
Envoi msg(dem, (last, i)) `a j
end if
end if
Liste d’Algorithmes 2014-2015/ Thibault BERNARD
Master Info - Info 0701 3
1.2 Algorithmes bas´es sur un jeton
Algorithme 3 Algorithme de Lelann, local au site i
etat S E, SC, S
suivant le site voisin dans l’anneau
Reception du jeton
if etat =Ethen
etat SC
else
Envoi (jeton) `a suivant
end if
sortie
etat S
Envoi (jeton) `a suivant
Algorithme 4 Algorithme de Ricart Agrawal, local au site i
Etat S E, SC, S
Nbdem 0 tableau de Nentiers
jetonpresent f aux booleen (si le site a le jeton) sauf pour un site
Demande d’entree en section critique
Etat E
if ¬jetonpresent then
NBdem[i]N bdem[i]+1
for all j6=ido
Envoi dem `a j
end for
R´eception de jeton
jetonpresent V RAI
end if
Etat SC
Sortie de SC
Etat S
jeton[i]Nbdem[i]
if COND ATT then
Envoi jeton `a j
jetonpresent F AU X
end if
Reception de dem de j
Nbdem[j]Nbdem[j]+1
if jetonpresent (Etat =S)CON D AT T then
Envoi jeton `a j
jetonpresent F AU X
end if
COND ATT (site i)
jeton[j]< Nbdem[j]
Liste d’Algorithmes 2014-2015/ Thibault BERNARD
Master Info - Info 0701 4
2 Election
Algorithme 5 Algorithme de Lelann, local au site i
Variables
List ensemble de d’identifiants, init. `a
etat ∈ {elu, battu, init, noninit}init. `a init pour les initiateurs et noninit pour les autres
if etat =noninit then
while false do
Reception msg
Envoi msg
if etat =noninit then
etat battu
end if
end while
else
list list ∪ {i}
Envoi msg(i)
Recoit msg(j)
while i6=jdo
list list ∪ {j}
Envoi msg(j)
Reception msg(j)
end while
if i= min list then
etat elu
else
etat battu
end if
end if
Liste d’Algorithmes 2014-2015/ Thibault BERNARD
Master Info - Info 0701 5
Algorithme 6 Algorithme de Chang Roberts, local au site i
Variables
etat ∈ {elu, battu, init, noninit}init. `a init pour les initiateurs et noninit pour les autres
if etat =noninit then
while false do
Reception msg
Envoi msg
if etat =noninit then
etat battu
end if
end while
else
Envoi msg(i)
repeat
Recoit msg(j)
if i=jthen
etat elu
else
if j < i then
if etat =init then
etat battu
end if
Envoi msg(j)
end if
end if
until etat =elu
end if
Liste d’Algorithmes 2014-2015/ Thibault BERNARD
1 / 16 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !