L'Algorithme Carvalho et Roucairol est un algorithme d'exclusion mutuelle sur un système distribué. Il est une amélioration possible de l'algorithme de Ricart et AgrawalaRiflet,2008.

Principe de l’algorithme Il est identique à l'algorithme de Ricart et Agrawala. Il a été optimisé sur un point : une fois qu'un site a reçu un message de réponse à partir d'un autre site, le premier site peut entrer en section critique sans avoir reçu la permission de l'autre jusqu'à ce qu'il ait envoyé un message de réponse à l'autre.

Source Sourcethibault,p2, 2010 : R = {j \in V tel que i ne possede pas perm(i; j)} etat = S E, SC, S etat du site i h = 0 entier date des demandes last = 0 entier date de la derniere demande differe = ensemble de sites qui retardent l envoi d une permission priorite = faux booleen si i prioritaire ou non <Demande d'entrée en section critique> etat = E last = h + 1

for all j in Rj do Envoi msg(dem(lasti, i) a j end for

while R != <ensemble vide> do Reception msg(perm(i, j)) de j R = R j end while

etat = SC Sortie etat = S

for all j dans differe do Envoi msg(perm(i, j)) a j end for

R = differe Reception de msg(dem, (h', j)) de j h = max(hi, h')

priorite (etat = SC)<math> \bigwee </math>[(etat = E) \bigwedge (last; i) < (h0; i)]

if priorite then differe differe [ j else Envoi msg(perm(i; j)) a j R R [ j if etat = E then Envoi msg(dem, (last, i)) a j end if end if

Notes et références

Bibliographie

Catégorie:Algorithme d'exclusion mutuelle