68

Algorithmique Distribuée Exclusion mutuelle distribuée ......Algorithmique Distribuée Exclusion mutuelle distribuée Laurent PHILIPPE Master 2 Informatique UFR des Sciences et echniquesT

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

  • 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