-
Algorithmique Distribuée
Exclusion mutuelle distribuée
Laurent PHILIPPE
Master 2 InformatiqueUFR des Sciences et Techniques
2013/2014
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 1 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Références
Distributed Systems, Principle and Paradigms, A.Tanenbaum,Pearson Ed.
M.Raynal, Une introduction aux principes des systèmesrépartis (3 tomes), EyrollesEd. (1991)
Cours de C.Kaiser du Cnam.
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 2 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Sommaire
1 Introduction
2 Mécanisme de synchronisation centralisé
3 Synchronisation distribuée avec des horloges logiques
4 Synchronisation distribuée utilisant un jeton
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 3 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Sommaire
1 Introduction
2 Mécanisme de synchronisation centralisé
3 Synchronisation distribuée avec des horloges logiques
4 Synchronisation distribuée utilisant un jeton
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 4 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Exclusion mutuelle : rappels
Une ressource partagée ou une section critique n'est accédéeque par un processus à la foisUn processus est dans les trois états possibles, par rapport àl'accès à la ressource :
demandeur
dedans
dehors
Changement d'états par un processus :de dehors à demandeurde dedans à dehors
Couche middleware gère le passage de l'état demandeur àl'état dedans
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 5 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Exclusion mutuelle : rappels
Propriétés
Accès en exclusion mutuelle doit respecter 2 propriétés :
Sûreté : un processus au maximum en section critique (étatdedans)
Vivacité : toute demande d'accès à la section critique estsatisfaite en un temps �ni
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 6 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Mécanismes d'exclusion mutuelle distribuée
En système distribué, nous présentons deux classes de mécanismesd'exclusion mutuelle
les mécanismes centralisés
les mécanismes distribués
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 7 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Sommaire
1 Introduction
2 Mécanisme de synchronisation centralisé
3 Synchronisation distribuée avec des horloges logiques
4 Synchronisation distribuée utilisant un jeton
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 8 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Mécanisme de synchronisation centralisé
Synchronisation centralisée : dé�nition
Mécanisme centralisé de synchronisation en système distribuéregroupe les algorithmes qui utilisent un coordinateur pour gérerl'exclusion mutuelle. Ce coordinateur :
centralise les requêtes des di�érents processus de l'application
réalise l'exclusion mutuelle en accordant la permission d'entréeen Section Critique
gère une �le des requêtes en attente de Section Critique.
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 9 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
L'algorithme
Processus PiQuand un processus Pi veut entrer en Section Critique, ilenvoie au coordinateur un message de "demande d'entrée enSection Critique". Il attend la permission du coordinateur,avant d'entrer en Section Critique.
Lorsque Pj reçoit la permission, il entre en Section Critique.
Quand Pi quitte la Section Critique, il envoie un message desortie de Section Critique au coordinateur.
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 10 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
L'algorithme
Coordinateur
Si personne en Section Critique, à la réception d'une demanded'accès de Pi , il retourne "permission d'accès� à Pi .Si un processus Pj est déjà en Section Critique. Lecoordinateur refuse l'accès. La méthode dépend del'implantation :
soit il n'envoie pas de réponse, le processus Pj est bloqué.soit il envoie une réponse : "Permission non accordée".
Dans les deux cas, le coordinateur dépose la demande de Pjdans une �le d'attente.
A la réception d'un message de sortie de Section Critique, lecoordinateur prend la première requête de la �le d'attente dela Section Critique et envoie au processus un message depermission d'entrée en Section Critique.
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 11 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Mécanisme de synchronisation centralisé
Avantages
Algorithme garantit l'exclusion mutuelle,
Algorithme juste (les demandes sont accordées dans l'ordre deréception)
Pas de famine (aucun processus ne reste bloqué)
Solution facile à implanter
Pas de supposition sur l'ordre des messages
Complexité : maximum 2 ou 3 messages
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 12 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Mécanisme de synchronisation centralisé
Inconvénients
Si coordinateur a un problème, tout le système s'e�ondre
Si processus bloqués lors de demande d'accès à une SectionCritique occupée : impossibilité de détecter la panne ducoordinateur
Dans de grands systèmes, le coordinateur = gouletd'étranglement
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 13 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Sommaire
1 Introduction
2 Mécanisme de synchronisation centralisé
3 Synchronisation distribuée avec des horloges logiques
4 Synchronisation distribuée utilisant un jeton
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 14 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Synchronisation distribuée
Rappel
Processus ne communiquent que par échange de messages
Chaque processus connaît l'ensemble des processus du système
Chaque processus a ses propres variables, pas de partage devariables
On ne considère pas les cas de pertes de messages ni lespannes de machines
Les échanges de messsages sont FIFO : les messages ne sedoublent pas.
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 15 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Synchronisation distribuée
Principe
Di�user la demande
Il faut l'accord de tous les autres
Une fois le consensus obtenu on accède à la SC
Di�culté : demandes concurrentes
Algorithme de Lamport
Utilise les horloges logiques pour ordonner les évènements
Pi incrémente son horloge entre deux évènements locaux oudistants
A la réception d'un message par Pi d'horloge H, l'horloge Hidevient max(Hi ,H) + 1
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 16 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Lamport
Variables pour chaque processus PiHorloge locale HiTableau des horloges des autres processus, initialisé à 0
Chaque processus maintient un tableau de requêtes : état dedemande des autres processus (ACK , REL, REQ)
Initialement, chaque processus connaît tous les autresparticipants : liste des voisins
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 17 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Lamport
Principe de l'algorithme(1)
Quand Pi veut entrer en Section Critique, il incrémente sonhorloge, envoie le message REQ(Hi :Pi ) de demande de SC àtous les autres processus et dépose ce message dans tableaudes requêtes
Quand un processus Pi reçoit le message REQ(Hj :Pj) dedemande de SC, il synchronise son horloge, met le messagedans son tableau de requêtes et envoie un message ACK datéde bonne réception à Pj
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 18 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Lamport
Principe de l'algorithme (2)
Pi accède à la SC quand les deux conditions suivantes sont réalisées :
Il existe un message REQ(Hi :Pi ) dans son tableau de requêtesqui est ordonné devant tout autre requête selon la relation deprécédenceLe processus Pi a reçu un message de tous les autres processusayant une date supérieure à Hi
Ces 2 conditions sont testées localement par Pi
Quand Pi quitte la SC, il enlève sa requête REQ(Hi : Pi ) de demande deSC de son tableau de requêtes, incrémente son horloge et envoie unmessage daté REL(Hi :Pi pour signaler qu'il quitte la SC à tous lesprocessus
Quand Pi reçoit le message REL(Hj : Pj ) (quitte SC), il synchronise sonhorloge et enlève le message REQ(Hj :Pj ) (demande de SC) de sontableau de requêtes
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 19 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Lamport
Variables utilisées par chaque processus PiHi : entier indiquant l'horloge locale. Initialement Hi=0F_Hi [] : tableau contenant les horloges des di�érents processus. Lataille du tableau correspond au nombre de participants.F_Mi [] : tableau contenant les messages correspondantVi : ensemble de tous les voisins de Pi
Messages utilisés
REQ(H) : demande d'entrée en SCACK(H) : acquittement d'une demande d'entrée en SCREL(H) : sortie de SC
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 20 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Lamport
Règle 1
Accepte la demande de Section Critique FaireHi := Hi + 1∀ j ∈ Vi Envoyer REQ(Hi ) à jF_Hi [i ] := HiF_Mi [i ] := REQAttendre
∀j ∈ Vi ((F_Hi [i ] < F_Hi [j ]) ∨ ((F_Hi [i ] = F_Hi [j ]) ∧ i < j))
Fait
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 21 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Lamport
Règle 2
Accepte le message REQ(H) depuis j FaireHi := Max(Hi ,H) + 1F_Hi [j ] = HF_Mi [j ] = REQEnvoyer ACK(Hi ) à j
Fait
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 22 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Lamport
Règle 3
Accepte le message ACK(H) depuis j FaireHi := Max(Hi ,H) + 1Si F_Mi [j ] 6= REQ AlorsF_Hi [j ] = HF_Mi [j ] = ACK
Fsi
Fait
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 23 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Lamport
Règle 4
Accepte la libération de la Section Critique FaireHi := Hi + 1∀j ∈ Vi Envoyer REL(Hi ) à jF_Hi [i ] = HiF_Mi [i ] = REL
Fait
Règle 5
Accepte le message REL(H) depuis j FaireHi := Max(Hi ,H) + 1F_Hi [j ] = HF_Mi [j ] = REL
Fait
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 24 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Déroulement de l'algorithme de Lamport
Exercice avec 3 processus : P0, P1 et P2
1 P0 demande à entrer en section critique. Dérouler l'algorithmejusqu'à ce que P0 sorte de SC.
2 P1 demande. Dérouler l'algorithme jusqu'à ce que P1 sorte de SC.
3 Les processus P0 et P2 demandent la SC en même temps. Déroulerl'algorithme jusqu'à ce que le premier des deux sorte de SC.
4 P1 demande à entrer en SC à ce moment là. Dérouler l'algorithmejusqu'à ce que P1 sorte de SC.
5 Les processus P1 et P2 demandent la SC en même temps. Déroulerl'algorithme jusqu'à ce que P1 et P2 sortent de SC.
Exercice
Que se passe-t-il si la propriété FIFO n'est pas respectée ?
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 25 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Lamport
Propriétés de l'algorithme
Sûreté : exclusion mutuelle garantie
Vivacité garantie
Algorithme exempt d'inter-blocage
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 26 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Lamport : Preuve sûreté
Par contradiction :
Supposons que Pi et Pj sont en même temps dans la SC à l'instant t,
Alors la condition d'accès doit être valide sur les deux processus en même tempset ils sont tous les deux dans l'état REQ
On peut supposer sans perte de généralité qu'à un instant t, H(Si ) < H(Sj ) (oul'inverse, ce qui revient au même) puisque deux horloges logiques ne sont jamaisidentiques
A partir de l'hypothèse de communication FIFO, il est clair que le message derequête de Si est dans le tableau F_Mj au moment où Pj entre en SC puisquePj attend toutes les réponses (ACK) des processus avant d'entrer, donc celui dede Pi .
Or l'acquittement de Pi a été généré après que Pi ait émis le message REQpuisque H(Si ) < H(Sj )
Donc Pj est entré en SC alors que H(Si ) < H(Sj ) → contradiction
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 27 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Lamport
Vivacité
Toute demande d'entrée en Section Critique sera satisfaite aubout d'un temps �ni.
En e�et, après la demande d'un processus Pi , au plus, N − 1processus peuvent entrer avant lui
Complexité
3 ∗ (N − 1) messages par entrée en Section Critique, où N est lenombre de processus
N − 1 RequêtesN − 1 AcquittementsN − 1 Libérations
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 28 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Ricart et Agrawala
Objectif
Algorithme proposé dans le but de diminuer le nombre de messagespar rapport à l'algorithme de Lamport
Changements
Regrouper information de sortie de SC et accord
Pas de retour systématique de ACK
N'informer que les processus en attente à la sortie de SC
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 29 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Ricart et Agrawala
Principe de l'algorithme
Lorsqu'un processus Pi demande la Section Critique, il di�useune requête datée à tous les autres processus.Lorsqu'un processus Pi reçoit une requête de demanded'entrée en Section Critique de Pj , deux cas sont possibles :
Cas 1 : si le processus Pi n'est pas demandeur de la SectionCritique, il envoie un accord à Pj .Cas 2 : si le processus Pi est demandeur de la Section Critiqueet si la date de demande de Pj est plus récente que la sienne,alors la requête de Pj est di�érée, sinon un message d'accordest envoyé à Pj .
Lorsqu'un processus Pi sort de la Section Critique, il di�use àtous les processus dont les requêtes sont di�érées, un messagede libération.
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 30 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Ricart et Agrawala
Variables utilisées par chaque processus Pi :
Hi : entier, estampille locale. Initialement Hi = 0HSCi : entier, estampille de demande de SC. Initialement HSCi = 0Ri : booléen, le processus est demandeur de SC. Init à Ri = FAUXXi : ensemble, processus dont l'accord est di�éré. Init à Xi := ∅Nreli : entier, nombre d'accords attendus. Init à Nreli = 0.Vi : voisinage de i
Messages utilisés :
REQ(H) : demande d'entrée en SCREL() : message de permission
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 31 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Ricart et Agrawala
Règle 1
Accepte la demande de SC FaireRi := VRAIHSCi := Hi + 1Nreli := cardinal(Vi )∀j ∈ Vi Envoyer REQ(HSCi ) à jtant que (Nreli 6= 0)< SC>
Fait
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 32 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Ricart et Agrawala
Règle 2
Accepte le message REQ(H) depuis j FaireHi := Max(HSCi ,H) + 1Si Ri ∧ ((HSCi < H) ∨ ((HSCi = H) ∧ i < j)) AlorsXi := Xi ∪ j
Sinon
Envoyer REL() à jFSi
Fait
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 33 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Ricart et Agrawala
Règle 3
Accepte le message REL( ) depuis j FaireNreli := Nreli − 1
Fait
Règle 4
Accepte la libération de la SC FaireRi := FAUX∀j ∈ Xi Envoyer REL() à jXi := ∅
Fait
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 34 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Ricart et Agrawala
Déroulement avec 3 processus : P0, P1, P21 Le processus P1 demandent l'accès à la Section Critique,
jusqu'à sa sortie de SC2 Le processus P2 demande l'accès à la Section Critique, une fois
qu'il est entré, P1 demande, jusqu'à la sortie des deux.3 P0 demande la SC en même temps que P2, lorsque l'un des
deux processus est en SC, P1 demande, jusqu'à la sortie destrois.
Question
Pourquoi deux horloges logiques ?
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 35 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Ricart et Agrawala
Preuve
Par contradiction
On suppose que Pi et Pj sont les deux en section critique.
On peut supposer sans perte de généralité que la requête de Pi aune horloge plus petite que celle de Pj
Puisque l'horloge de Pi est plus petite que celle de Pj cela signi�equ'il a reçu la requête de Pj après avoir fait sa demande
D'après l'algorithme Pj ne peut entrer en section critique que si Pilui a envoyé un message REL
Puisque Pi est en section critique alors il a envoyé ce message RELavant d'entrer en section critique
Ce qui est impossible puisque l'horloge de Pj est supérieure à cellede Pi , or d'après l'algorithme Pi n'envoie REL que si l'horloge reçueest plus petite Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 36 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Ricart et Agrawala
Complexité
Une utilisation de la Section Critique nécessite 2 ∗ (N − 1)messages :
N − 1 RequêtesN − 1 Permissions
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 37 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Synchronisation distribuée utilisant la notion d'horloges
logiques
Algorithme de Carvalho et Roucairol
Algorithme proposé dans le but de diminuer le nombre de messagespar rapport à l'algorithme de Ricart et Agrawala
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 38 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Carvalho et Roucairol
Principe de l'algorithme
Soit le cas où Pi demande l'accès à la Section Critique plusieursfois de suite (état demandeur plusieurs fois de suite) alors que Pjn'est pas intéressé par celle-ci (état dehors)
Avec l'algorithme de Ricart et Agrawala, Pi demande lapermission de Pj à chaque nouvelle demande d'accès à laSection Critique
Avec l'algorithme de Carvalho et Roucairol, puisque Pj adonné sa permission à Pi , ce dernier la considère commeacquise jusqu'à ce que Pj demande sa permission à Pi : Pi nedemande qu'une fois la permission à Pj
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 39 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Carvalho et Roucairol
Variables utilisées par chaque processus PiHSCi : entier, estampille de demande d'entrée en SC, initialisée à 0Hi : entier, estampille locale, initialisée à 0Ri : booléen, le processus est demandeur de SC, init à FAUXSCi : booléen, le processus est en SC, init à SCi = FAUXXi : ensemble, processus dont l'envoi de l'avis de libération estdi�éré. Init à Xi := ∅XAi : ensemble des processus desquels i attend une autorisation.Init à XAi := ViNreli : nombre d'avis de libération attendus, init à 0.Vi : voisinage de i
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 40 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Carvalho et Roucairol
Messages utilisés
REQ(H) : demande d'entrée en SCREL() : message de permission
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 41 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Carvalho et Roucairol
Règle 1
Accepte la demande de SC FaireRi := VRAIHSCi := Hi + 1Nreli := cardinal(XAi )∀j ∈ XAi Envoyer REQ(HSCi ) à jTant que (Nreli 6= 0)SCi=VRAI< SC>
Fait
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 42 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Carvalho et Roucairol
Règle 2
Accepte le message REQ(H) depuis j FaireHi := Max(HSCi ,H) + 1Si SCi ∨ (Ri ∧ ((HSCi < H) ∨ ((HSCi = H) ∧ i < j))) AlorsXi := Xi ∪ j
Sinon
Envoyer REL() à jSi Ri ∧ (¬SCi ) ∧ j /∈ XAi AlorsEnvoyer REQ(HSCi ) à j
FSi
XAi := XAi ∪ jFSi
Fait
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 43 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Carvalho et Roucairol
Règle 3
Accepte le message REL( ) depuis j FaireNreli := Nreli − 1
Fait
Règle 4
Accepte la libération de la SC FaireRi := FAUXSCi := FAUXXAi := Xi∀j ∈ Xi Envoyer REL() à jXi := ∅
Fait
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 44 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Carvalho et Roucairol
Déroulement de l'algorithme avec 3 processus : P0, P1 et P21 Les horloges logiques de chaque processus sont à 02 Les processusP2 et P1 demandent l'accès à la Section Critique
en même temps3 Déroulement de l'algorithme jusqu'à ce que les deux processusP1 et P2 soient entrés et sortis de Section Critique
4 Les processus P0 et P1 demandent la section critique5 Arrêt du déroulement de l'algorithme lorsque les trois
processus P0 et P1 seront entrés et sortis de Section Critique
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 45 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Carvalho et Roucairol
Question
Pourquoi un processus qui reçoit une REQ renvoie-t-il parfois uneREQ?
Complexité
Le nombre de messages requis pour une utilisation de la SectionCritique est :
pair car à toute requête d'entrée en SC correspond un envoi depermission
fonction de la structure du système : varie entre 0 et 2*(N-1)
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 46 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Sommaire
1 Introduction
2 Mécanisme de synchronisation centralisé
3 Synchronisation distribuée avec des horloges logiques
4 Synchronisation distribuée utilisant un jeton
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 47 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Synchronisation distribuée utilisant un jeton
Algorithmes
Di�érentes structures de communication :
Anneau : Le Lann
Di�usion : Suzuki-Kazami
Arbre : Naimi-Trehel
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 48 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Le Lann
Système structuré en anneau
Algorithme utilisant un jeton pour gérer l'accès à une SectionCritique
Jeton (unique pour l'application) = permission d'entrer enSection Critique
Un seul processus détient le jeton à un moment donné
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 49 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Le Lann
Construction de l'anneau
Construction d'un anneau avec l'ensemble des processus del'application de façon logique
Attribution d'une place à chacun des processus
Chaque processus connaît son successeur dans l'anneau
Initialisation : jeton attribué à un processus (exemple :Processus P0)
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 50 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Le Lann
Principe de l'algorithme
Quand un processus reçoit le jeton de son prédécesseur dansl'anneau :
s'il est demandeur de Section Critique, il garde le jeton etentre en Section Critiques'il n'est pas demandeur de Section Critique, il envoie le jetonà son successeur dans l'anneau
A la sortie de Section Critique, le processus envoie le jeton àson successeur dans l'anneau
Pour des raisons d'équité, un processus ne peut pas entrerdeux fois de suite en Section Critique
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 51 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Le Lann
Exercice
Quelles sont les données nécessaires ?
Quels sont les messages échangés ?
Quelles règles doivent être mises en place ?
Écrire les règles
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 52 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Le Lann
Avantages de l'algorithme
Simple à mettre en ÷uvre
Intéressant si nombreux demandeurs de la ressource
Équitable en terme de nombre d'accès et de temps d'attente
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 53 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Le Lann
Inconvénients (1)
Nécessite des échanges de messages même si aucun processusne veut accéder à la Section Critique
Temps d'accès à la Section Critique peut être longPerte du jeton :
di�culté de détecter un tel casimpossibilité de prendre en compte le temps écoulé entre deuxpassages du jeton (temps passé en Section Critique est trèsvariable)des algorithmes gèrent ce problème de perte et régénération dejeton sur un anneau (non vu dans ce cours)
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 54 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Le Lann
Inconvénients(2)
Problème de la panne d'un processusplus facile à gérer que dans les algorithmes précédentsenvoi d'un acquittement à la réception du jeton : permet dedétecter la panne de l'un des processusle processus mort peut être retiré de l'anneau et le suivantprend alors sa placepour implanter ceci : chaque processus doit connaître lacon�guration courante de l'anneau.
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 55 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Synchronisation distribuée utilisant un jeton
Modi�cation de l'algorithme avec anneau
Jeton symbolise le droit d'entrée en section critique
Un seul processus détient le jeton à un moment donné
Pas forcément besoin de la structure d'anneau
Exercice
Ecrire un algorithme où les participants échangent un jetonpour accéder à la section critique.
Dé�nir les données, les messages et les règles.
Quelles propriétés possède cet algorithme : sûreté, vivacité,équité ?
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 56 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Suzuki-Kasami
Principe de l'algorithme
Chaque processus connaît l'ensemble des participants
Quand Pi veut accéder à la Section critique, il envoie unmessage REQ(H) à tous les participants
Le jeton contient l'estampille de la dernière visite qu'il ae�ectué à chacun des processus
Quand Pi sort de Section Critique, il cherche le premierprocessus Pk tel que l'estampille de la dernière requête de Pksoit supérieure à celle mémorisée dans le jeton (correspondantà la dernière visite du jeton à Pk)
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 57 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Synchronisation distribuée utilisant un jeton
Exercice
Quelles sont les propriétés de l'algorithme ?
Comment améliorer l'équité ?
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 58 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Synchronisation distribuée utilisant un jeton
Algorithme de Naimi-Trehel
Eviter de di�user la requête initiale
Principe
Les processus sont logiquement organisés en arbre construit àpartir des requêtes de demande d'accès en Section Critique
Seul le processus qui possède le jeton peut accéder à la sectioncritique
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 59 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Naimi-Trehel
Structures de données
Ces structures de données sont gérées de façon distribuée :
Une �le de requêtes : next
Un arbre de chemins vers le dernier demandeur de SC : owner
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 60 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Naimi-Trehel
File de requêtes : next
Processus en tête de �le possède le jeton
Processus en queue de �le est le dernier processus qui a faitune demande d'entrée en SC
Chaque nouvelle requête de SC est placée en queue de �le
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 61 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Naimi-Trehel
Arbre de chemins vers le dernier demandeur de SC : owner
Racine de l'arbre : dernier demandeur de SC (= queue de la�le des next)Une nouvelle requête est transmise suivant le chemin despointeurs de owner jusqu'à la racine de l'arbre (owner = nil)
recon�guration dynamique de l'arbre : nouveau demandeurdevient la racine de l'arbreles processus faisant partie du chemin entre la nouvelle racineet les anciennes racines modi�ent leurs pointeurs owner :owner = nouvelle racine
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 62 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Naimi-Trehel
Principe de l'algorithme (1)
Chaque processus Pi gère localement les éléments suivants :
owner : processus qui possède probablement le jeton. Toutedemande de Pi d'accès à la Section Critique sera envoyée à ceprocessus.
next : processus à qui Pi devra transmettre le jeton à sa sortiede Section Critique. next est le dernier processus qui a envoyéà Pi une requête d'entrée en Section Critique.
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 63 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Naimi-Trehel
Principe de l'algorithme (2)
Initialisation :
elected-site : processus désigné comme étant le propriétairedu jeton. C'est la racine de l'arbre.
owner : initialisé à elected-site
next : initialisé à nil
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 64 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Naimi-Trehel
Principe de l'algorithme (3)
Quand un processus Pi demande l'accès à la Section Critique
S'il ne possède pas le jeton, il envoie sa requête à owner etattend de recevoir le jeton
S'il possède déjà le jeton, il entre en Section Critique
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 65 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Naimi-Trehel
Principe de l'algorithme (4)
Quand un processus Pi reçoit une requête d'entrée en SC de la partde Pj
S'il possède le jeton et qu'il n'est pas en SC alors il envoie lejeton à Pj et met à jour sa variable owner
S'il possède le jeton et s'il est en SC, il met à jour next
S'il ne possède pas le jeton et qu'il attend la section critique :il transmet la requête à owner
S'il ne possède pas le jeton et qu'il attend la section critique :il enregistre la demande dans next
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 66 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Naimi-Trehel
Principe de l'algorithme (5)
Quand un processus Pi sort de SC, si next est initialisé il envoie lejeton à next et réinitialise next à nil
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 67 / 68
-
IntroductionMécanisme de synchronisation centralisé
Synchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton
Algorithme de Naimi-Trehel
Déroulement de l'algorithme
Soient 5 processuss A, B, C, D et E
Initialisation : le processus A possède le jeton (electednode)
Le processus B demande l'accès à la section critique
Lorsque le processus B est en Section Critique, le processus Cen demande l'accès
Lorsqu'ils sont sortis de la section critique le processus Edemande.
Quel est l'état de l'arbre des demandeurs au cours de cesdemandes ?
Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 68 / 68
Exclusion mutuelle distribuéeIntroductionMécanisme de synchronisation centraliséSynchronisation distribuée avec des horloges logiquesSynchronisation distribuée utilisant un jeton