Vous êtes sur la page 1sur 52

19/11/2009

Informatique Rpartie

Algorithmiques et Excution Rparties

2004/2005

Problmatique

Application centralise:
Il est possible de grer deux processus ou plus qui interagissent.

Applications rparties:
La mthode des applications centralises ne fonctionne plus Des problmes de synchronisation: 1. Exclusion mutuelle (accs concurrents) 2. Election 3. Dtection de la terminaison 4. Interblocage

Nouvelles notions dexcution rpartie


2

19/11/2009

Partie 1 Les accs concurrents Algorithmes dExclusion Mutuelle

Les accs concurrents


On parle dexclusion mutuelle quand un seul processus la fois a le droit de rentrer en section critique. Solutions logicielles: Smaphores, Moniteurs Solutions matrielles: Dsactiver les interruptions

19/11/2009

Les accs concurrents Les solutions centralises


Smaphores binaires q p p qui peuvent p prendre les valeurs 0 ou 1 et les smaphores n-aires Le systme gre lentre la section critique en endormant les processus qui arrivent alors que le smaphore est attribu Deux primitives: P et V indivisibles P(S) permet de prendre le smaphore:
Si S>0 Alors s=s-1 Sinon sendormir FinSi Fi Si

V(S) permet de librer le smaphore et un processus bloqu sil en existe:


Si un processus est bloqu sur S Alors le librer Sinon s=s+1 FinSi
5

Les accs concurrents dans un env. rparti


Un processus bloqu appartient la file des processus en attente, une fois libr il passe dans celle des prts Le systme gre des contexte de processus A distance il devient difficile voire impossible de grer des contextes des diffrents processus des diffrents sites => les solutions telles que smaphores ne sont plus applicables Nouvelles Solutions: Centralise: base sur un coordinateur Rpartie: concertation des processus Jeton
6

19/11/2009

Les accs concurrents Solution centralise


Un processus est lu coordinateur Lorsquun processus Pi dsire rentrer en section critique, il envoie une requte au coordinateur en lui dsignant la section en question et en lui demandant son autorisation Si aucun processus nest dans la section critique, le coordinateur donne son accord et envoie une rponse positive Pi Lorsque Pi ressort de la section, il envoie un message au coordinateur en relchant son accs exclusif. Le coordinateur prend alors le premier lment de la file des demandes en attente et autorise le processus correspondant rentrer en section critique
7

Les accs concurrents Solution centralise

On simule donc un systme centralis y


P(S) est remplac par une requte bloquante au coordinateur Puis-je? V(S) est remplac par une primitive qui envoie un message de terminaison au coordinateur Un processus est lu coordinateur

Avantages:
Equit: les demandes sont accordes dans lordre de leur rception Pas de famine Simple mettre en uvre

Inconvnients:
Sollicitation excessive du coordinateur => goulot tranglement Panne du coordinateur => lire un nouveau => unicit du nouveau Ambigut pour les processus de distinguer entre un panne du coordinateur et un retard dans la rponse
8

19/11/2009

Les accs concurrents Solution Rpartie


Avec la solution centralise, les inconvnients venaient du coordinateur => lenlever !!! Chaque processus connat les N autres processus qui interagissent avec lui pour une section critique Chaque processus dsirant rentrer en section critique:

Envoie un message aux N processus Puis-je? Attend N rponses:


Rception de N rponses: il peut rentrer en section critique Rception de N-1 rponses: ne rentre pas car un autre et peut-tre dans la section critique (ou perte de sa rponse auquel cas il faut r-envoyer la requte)

Problme: Aucune quit nest possible car pas dordre entre les demandes daccs. Risque de famine !!!!!
9

Les accs concurrents Algo de Lamport (1978)


Les canaux de communication entre les diffrents sites respectent la proprit FIFO. Chacun des composants du systme utilise une horloge scalaire qu'il synchronise lors de la rception de messages. Chacun des composants gre une file dattente dans laquelle il ordonne toutes les requtes pour entrer en section (y compris les siennes) selon la valeur de leur estampilles Trois types de messages (estampills lors de leur envoi) sont utiliss et chacun des messages sera systmatiquement envoy tous les autres participants:

REQUETE : envoy lorsqu'un site veut entrer en section critique ; REPONSE : envoy par un site qui reoit un message du type prcdent ; LIBERATION : envoy par un site lorsqu'il sort de section critique.
10

19/11/2009

Les accs concurrents Algo de Lamport (1978)


On notera Hi lhorloge du site Si, et FILEi la file d attente de Si (message l horloge dattente rangs par estampilles croissantes) Si Si veut entrer en section critique, il place sa requte dans FILEi et envoie un message de type REQUETE tous les autres sites. Il pourra entrer en section critique lorsquil aura effectivement reu un message de type REPONSE de tous les autres ET que sa requte sera en tte de FILEi ; Si Sj reoit un message de type REQUETE en provenance de Si, il met jour son horloge Hj (selon la mthode de Lamport) il place la Lamport), requte dans FILEj et envoie Si un message de type REPONSE; Lorsque Si sort de la section critique, il envoie tous les autres sites un message de type LIBERATION et retire sa requte de

FILEi Si Sj reoit de Si un message de type LIBERATION, il met jour

son horloge et enlve de FILEj le message de type REQUETE


11

Les accs concurrents Algo de Lamport (1978)


Ex:
FILE0={[8,0]} FILE0={[8,0],[12,2]} REPONSE0={0,1,2} FILE0={[12,2]} REPONSE0={}

0
REQUETE (8,0)

0 12,2 2
FILE2={[12,2]}
REPONSE REPONSE

0
LIBERATION

8,0 1 12,2

2
REPONSE

2
FILE2={[12,2]} REPONSE2={0,1,2}

FILE2={[8,0],[12,2]} REPONSE2={0,1,2}

3(N-1) messages par demande dentre en section critique


12

19/11/2009

Les accs concurrents Algo de Lamport (1978)


Lamport garantit que si a prcde b alors les requtes REQUETE, REPONSE et LIBERATION de Pi prcde celles de pj Estampillage => absence de famine et dinterblocage E t ill > b d f i t di t bl Ncessite 3(N-1) messages

13

Les accs concurrents Algo de Ricart et Agrawala (1981)


Variantes de l algorithme de Lamport lalgorithme Lalgo: Quand un processus reoit un message REQUETE:

Sil nest pas dans la section critique et ne veut pas rentrer il retourne simplement un message OK lmetteur Sil est dj en section critique, il ne rpond pas. Il mmorise la demande dans une file dattente d attente Sil veut rentrer en section critique, mais ne la pas encore fait, il compare lestampille du message venant darriver celle contenue dans le message quil avait envoy aux autres. La plus ancienne gagne:

Si le message reu est plus vieux, le rcepteur rpond OK Sinon le rcepteur mmorise la demande et nenvoie rien
14

19/11/2009

Les accs concurrents Algo de Ricart et Agrawala (1981)


Ex:
8

Entre en section critique

0
8

0 8 12 2 12
OK OK

0
OK

12

1
OK

2
Entre en section critique

2(N-1) messages
15

Les accs concurrents Solutions Distribues


Avantages:

Pas de famine, pas dinterblocage Equit obtenue par utilisation des estampilles Si lun des processus se plante, il ne rpondra pas aux requtes => interprt comme une permission refuse => blocage
Solution: utilisation de temporisateurs

Inconvnients:

Chaque processus doit grer la liste des autres membres (nouvelle entrs, nouvelle sortie, panne) t ll ti ) Charge du rseau
Solution: ne pas obtenir la rponse de tous les processus. Ex: Algo de Maekawa: un site ne donne sa permission qu un seul site la fois Algo de Carvallo et Roucairol: un processus qui a obtenu la section critique et la redemande alors quaucun autre ne la demand, y rentre sans demandes => entre 0 et 2(N-1) messages
16

19/11/2009

Les accs concurrents Solutions jeton


Le rseau de communication est suppos tre un rseau en bus de type Ethernet sans ordonnancement prtabli des processus => possibilit de construire un anneau logique (chaque processus doit savoir qui le suit) Initialisation: on donne un jeton au processus 0 Le jeton circule dans lanneau; il passe du processus k au processus k+1 (modulo la taille de lanneau):

k reoit l j t it le jeton; il regarde sil veut rentrer en section critique d il t t ti iti Si oui il y entre, puis lorsquil a termin, il passe le jeton son voisin Si non, il passe directement de jeton son voisin

Un processus ne peut rentrer en section critique que sil est en possession du jeton
17

Les accs concurrents Solutions jeton


Avantages:
Justesse: un seul processus peut avoir le jeton un moment donn Pas de famine: sens bien dfini de circulation du jeton Un processus doit au pire attendre que tous les autres rentrent en section critique avant dy rentrer lui-mme

Inconvnients:
Perte de jeton => regnration => Assurer lexistence et lunicit du jeton Si un des processus se plante (mais la reprise est plus simple ici)

18

19/11/2009

Les accs concurrents


Algorithme Al ith Message par M entre/sortie 3 Temps avant T t entre 2 Problmes P bl

Centralis

Plantage du coordinateur

Distribu

2(n-1)

2(n-1)

Plantage dun processus

Jeton

Perte du jeton Plantage dun processus

19

Les accs concurrents Les solutions jeton


Algorithme de Ricart et Agrawala/Suzuki Kasami

Objectifs de conception: minimiser le nombre de messages des algorithmes distribus Rseau fortement connect et voies de communication fiables Dlai de transmission variable et dsquencement possible des msgs Principe: Le processus en section critique p p q possde un p privilge matrialis p g par un jeton Tant quun processus garde le jeton, il peut pntrer en section critique sans consulter les autres Initialement le jeton est affect un processus quelconque Le jeton est demand par le processus Pi laide dun message de requte estampill et diffus tous les autres processus
20

10

19/11/2009

Les accs concurrents Les solutions jeton

Algorithme de Ricart et Agrawala/Suzuki Kasami


Matrialisation du jeton: Jeton: tableau dont le kime lment mmorise lestampille de la dernire visite quil a effectue au processus Pk Lorsquun processus Pj qui possde le jeton, ne dsire plus accder la section critique, il cherche dans le tableau qui matrialise le jeton le premier processus Pl (l choisi dans lordre j+1, , n, 1, j-1) tel que lestampille de la dernire requte de Pl soit suprieure lestampille mmorise par le jeton lors de sa dernire visite Pl. Pj envoie alors le jeton Pl

21

Algorithme de Ricart et Agrawala/Suzuki Kasami


Var horlog: 0..+ initialis 0; (horloge logique) 0 + Jetonpresent: booleen; dedans: booleen initialis faux; jeton: tableau (1..N) de 0..+ initialis 0; requetes: tableau (1..N) de 0..+ initialis 0; Si non jetonpresent alors horloge horloge + 1; diffuser(req, horlog, i) attendre(token, jeton); jetonpresent vrai; Fsi; dedans vrai ; <section critique>

22

11

19/11/2009

Algorithme de Ricart et Agrawala/Suzuki Kasami


jeton(i) horlog ; dedans faux; pour j de i+1 jusqua N, 1 jusqua i-1 faire si requete(j) > jeton(j) et jetonpresent alors jetonpresent faux; envoyer(token, jeton) j; fsi; ; lors de reception(req, k, j) faire requete(j) max(requete(j), k); si jetonpresent et non dedans alors < F> fsi; fait;

23

Les accs concurrents Les solutions jeton

Ncessite 0-N messages: Soit N messages dans le cas o le processus ne possde pas le jeton: N-1 pour diffuser la requte + 1 pour vhiculer le jeton Soit 0 messages dans le cas o il le possde

24

12

19/11/2009

Partie 2 Algorithmes dElection

Problmatique
Plusieurs algorithmes distribus demandent un des processus de jouer le rle de: Coordinateur Initiateur Squenceur Etc. Terme gnrique: coordinateur

26

13

19/11/2009

Principe des algo delection


En gnral, les algo dlection tentent de trouver le processus ayant le numro le plus lev et le nomme coordinateur Les processus sont supposs connatre les numros (unique) des uns et des autres MAIS un processus ne sait pas qui est actif et qui ne lest pas La transmission des messages entre processus est suppose fiable sans pertes But: Garantir que si une lection commence, elle se terminera avec laccord de tous les processus sur lidentit du nouvel lu
27

Principe des algo delection


Chaque processus Pi possde une variable elui qui contient lidentifiant du processus lu. Lorsquun processus devient un participant llection il met cette variable la valeur spciale . Durant lexcution dun algorithme dlection, on doit garantir:

E1 (Safety): Un processus participant pi a elui = ou elui = P, o P est choisi la fin de lexcution comme le processus en vie possdant le plus grand identifiant E2 (liveness): tous les processus pi participent et donc mettent elui # _ou se plante

28

14

19/11/2009

Lalgorithme du plus fort The bully algorithm


Garcia-Molina (1982) Quand un processus Pi saperoit que le coordinateur ne rpond plus aux requtes, il provoque une lection => 1. Pi envoie un message ELECTION tout Pj tels que j>i 2. Si personne ne rpond, Pi gagne llection et devient le coordinateur 3. Si un site de numro plus lev rpond, cest lui qui prend le pouvoir. Le rle de Pi est termin

29

Lalgorithme du plus fort The bully algorithm

A tout moment un processus Pj peut recevoir un message ELECTION de Pi tel que i<j. Quand un tel message arrive, le Pj renvoie un message OK Pi pour lui indiquer quil est en vie et quil va prendre le contrle. Pj organise alors une lection, moins quil y en ait dj une en cours Tous les processus finissent par abandonner, SAUF UN qui prend le rle de nouveau coordinateur. Il annonce sa victoire en envoyant un message tous les processus, les informant quil est dornavant le nouveau coordinateur

30

15

19/11/2009

Lalgorithme du plus fort The bully algorithm


2 4 0 7 3 1 2
ELECTION

2 5 4 0 7

1 2
OK

2 5 4 0 7

1 2 5
ELECTION

6 3

6 3

2 4 0 7

1 2 5 6 3 4 0

1 2 5
COORDINATEUR

6 7
COORDINATEUR

31

Lalgorithme du plus fort The bully algorithm

Pour chaque processus, lalgorithme dfinit un temps dattente maximum T entre lenvoi dun message ELECTION et la rception du message OK: T = 2Ttrans + Tprocess o Ttrans: dlai max de transmission du message Tprocess: dlai de traitement du message Si aucune rponse narrive durant ce temps T, le processus n arrive dduit que le processus en question est en panne

32

16

19/11/2009

Lalgorithme du plus fort The bully algorithm

Ncessite au pire O(N2) et au mieux N-1 messages Lalgorithme du plus fort garantie la condition E2 grce la fiabilit de transmission des messages MAIS E1 nest plus garantie si:

Un processus qui se plante est remplac par un processus avec le mme identifiant => peut dcider quil a lidentifiant le plus grand au mme moment o un autre processus sautoproclame lu => 2 lus

Pas dordre dans la dlivrance des messages !!!!

La valeur de T nest pas adquate (trop petite)

33

Algorithme pour anneau pour llection

Fond sur lutilisation dun anneau mais sans jeton !!! Processus physiquement ou logiquement ordonns de faon que chacun connaisse lidentit de son successeur Pi saperoit que le coordinateur ne fonctionne plus, il construit un message ELECTION contenant son propre numro et l envoie lenvoie son successeur Pj Pj son tour ajoute son propre Pj. tour, numro et envoie le message son successeur. Au bout dun moment, Pi reoit ce message, il le change en COORDINATEUR et le met en circulation une nouvelle fois pour dsigner le coordinateur = le membre de la liste dont le numro est le plus grand
34

17

19/11/2009

Algorithme pour anneau pour llection


[ , , ] [5,6,0]

0 7 6
[5]

1 2
[2]

0 7 6 5

[2,3,5,6,0,1]

2 3 4
[5,6,0,1,2,3,4]

[5,6]

3
[2,3]

4 5

Transforms en messages de dsignation du coordinateur Puis remis en circulation jusqu nouveau tour

Messages dlection

=> Gaspillage de la bande passante


35

Algorithme pour anneau Algo de Chang et Roberts (1979)

Initialement tous les processus sont marqus non participants I iti l tt l t ti i t llection. Tout processus pi peut commencer lalgo. Il se marque lui-mme participant, place son identifiant i dans un message election et lenvoi son successeur Quand un processus pj reoit un message election il compare son identifiant celui contenu dans le message: Si j > i, et pj nest pas participant, il place j dans le message et le transmet son successeur Si j>i et pj est dj participant, il ne transmet pas le message Si j<i, il transmet le message sans le changer Si i=j, pi devient le coordinateur: il se marque comme non participant et envoi un message elu son voisin. Si pk recoit un message elu, il se marque non participant et met sa variable eluk = i 36

18

19/11/2009

Algorithme pour anneau Algo de Chang et Roberts (1979)

E1 vrifie: tous les processus sont compars puisquun processus doit recevoir son identifiant en retour avant denvoyer un message elu E2 vrifie aussi: anneau garanti sans perte Le pire des cas: 3N-1 messages Le pire des pires des cas: i=N(N-1)/2 = 0(n2) si tous les processus lancent llection en mme temps et disposs sur lanneau dans un ordre dcroissant

37

Un autre algorithme pour lection dans anneau


Pi dclanche une l ti d l h lection Il se propose CANDIDAT et envoie deux messages ses voisins de droite et de gauche Si lestampille de Pi est suprieure celle de ses deux voisins, il envoie un message aux voisins de ses voisins jusqu faire le tour de lanneau Si un processus Pj dans lanneau a une estampille suprieure a celle d Pi Pi sera d l b tt et cest Pj qui comparera son ll de Pi, dclar battu t t i estampille avec tous les autres Gagner du temps et des messages en allant dans les deux sens dans lanneau => Paralllisme
38

19

19/11/2009

Un autre algorithme pour lection dans anneau


lors de dcision de provoquer une lection faire tat candidat; lgmax 1; tantque tat = candidat faire nbrep 0; repok vrai; envoidouble( candidature, mon-numro, 0, lgmax); attendre nbrep = 2; si non repok alors etat battu fsi; lgmax lgmax 2; lgmax*2; fait; fait; rception de (rponse, bool, numro) faire si numro = mon-numro alors nbrep nbrep+1; repok repok et bool; sinon fairesuivre (rponse, bool, numro) fsi; fait;

39

Un autre algorithme pour lection dans anneau


rception de (candidature, numro, lg, lgmax) faire selon le cas numro < mon-numro alors rpondre (rponse, faux, numro); si tat non-concerne alors provoquer une lection fsi; numro > mon-numro alors tat battu; lg lg+1; si lg < lgmax alors fairesuivre ( candidature, numro, lg, lgmax) sinon rpondre ( rponse, vrai, numro); fsi; numro = mon-numro alors si tat lu alors tat lu; ; vainqueur mon-numro; fairesuivre ( termine, mon-numro); fsi; fait; rception de (termin, numro) faire si vainqueur numro alors fairesuivre (termin, numro); vainqueur numro; tat non-concern; fsi fait

40

20

19/11/2009

Partie 3 Dtection de la terminaison

La problmatique
A priori, il est assez simple de dtecter quun algorithme distribu ait fini son excution: il suffirait de tester que chaque processus constituant cet algo est en interruption Ex: Un algo constitu de deux processus p1 et p2, chacun demandant des donnes de lautre. Instantanment, un processus peut tre soit actif soit passif
p1 passif Message Pour p1 => Va lactiver p2 passif

A linstant t, p1 et p2 sont passifs mais p2 a envoy un message p1 qui va lactiver => lalgo nest donc pas termin

42

21

19/11/2009

La problmatique
Un processus passif ne peut redevenir actif que sur la rception dun message en provenance dun autre processus et bien sur seuls les processus actifs peuvent mettre de tels messages Il faut donc pouvoir affirmer, aprs lexcution dun algorithme de dtection de la terminaison, que tous les processus constituant lapplication sont bel et bien passifs, et quils le resteront. 2 mthodes: Sans jeton: constitution dun tat global Avec jeton

43

Application de lalgo de Chandy et Lamport


Chandy et Lamport => constitution de ltat global Rappel: Un processus Q reoit le marqueur demandant ltat global pour la premire fois, il considre le processus qui lui a envoy le marqueur comme son prdcesseur. Lorsque Q a fini sa part de lalgo (enregistrer son tat et ltat l algo l tat de ses voies de communication jusqu prochain marqueur), il envoie son prdcesseur un message DONE. Par rcursivit, lorsque linitiateur de lalgo de Chandy et Lamport reoit un message DONE de tous ses successeurs, il sait que ltat global est construit (que la photo est prise)
44

22

19/11/2009

Application de lalgo de Chandy et Lamport


Le problme: Ltat global dfinit aussi les messages en transit sur les voies de communication => susceptibles dactiver des processus passifs => on ne peut pas conclure de la terminaison de lexcution de lapplication rpartie si messages en transit =>

BESOIN DUN ETAT GLOBAL OU LES VOIES DE COMMUNICATION SONT VIDES !!!

45

Application de lalgo de Chandy et Lamport


Petite modification de lalgo de Chandy et Lamport: g y p Lorsquun processus Q finit sa part de lalgo, il envoie soit un message DONE ou un message CONTINUE. Il envoie un message DONE ssi: 1. Tous les successeurs de Q ont retourn un message DONE, et 2. Q na reu aucun message entre le moment o il a enregistr son t t et le moment o il a reu l marqueur i t tat t l t le de toutes ses voies de communication rentrantes Dans tous les autres cas il envoie un message CONTINUE son prdcesseur Lorsque le processus initiateur ne reoit que des messages DONE, lexcution est termine => terminaison dtecte

46

23

19/11/2009

Application de lalgo de Chandy et Lamport


Principe du calcul diffusant => Les marqueurs parcourent larbre jusqu arriver aux feuilles puis reviennent en arrire jusqu la racine PLUS les messages DONE et CONTINUE

=> Nombre de messages pour dtecter la terminaison: n!

47

Terminaison sur un anneau


Dijkstra, Feijen et Van Gasteren (1983) Processus rangs dans un certain ordre faisant intervenir leur identit: P0, P1, , Pi, , Pn-1, P0 Communications unidirectionnelles (de Pi vers Pi-1 ) pour lexecution de lalgo de detection de la terminaison MAIS SINON messages quelconques Detection de la terminaison initialise par un processus particulier, soit P0 Principe: Faire circuler un jeton sur lanneau des processus, de telle faon que, lanc par P0 lorsquil est passif, le jeton est transmis Pn-1 qui ne le transmettra Pn-2 que lorsquil sera devenu lui-mme passif, et ainsi de suite. 48

24

19/11/2009

Terminaison sur un anneau


Problme : FAUSSE TERMINAISON
Jeton circule dans le sens P0, P8, , P1 0 8 P0, P8, P7, P6, sont devenus passifs suite au passage du jeton 7 6 5 4 1 2 3 P2n envoie un message P7 => P7 va redevenir actif

Un processus Pj qui na pas encore t visit par le jeton ne sait pas dans quel processus celui-ci se trouve: il ne peut donc pas savoir si le processus Pk auquel il envoie le jeton a t visit ou pas Pk qui passif a reu le jeton et la transmis Pk-1 devient actif en recevant un message du processus Pj non encore visit par le jeton Pk peut son tour rendre actifs dautres processus dj visits par le jeton
49

Terminaison sur un anneau


Solution: Jeton et processus valus par une couleur: ils sont blancs ou noirs

Initialement le jeton et tous les processus sont blancs Un processus devient noir lorsquil envoie un message un processus dot dune identit suprieure la sienne Lorsquun processus reoit le jeton il attend dtre passif puis le transmet en fonction de sa propre couleur: Sil est blanc il transmet le jeton sans modifier la couleur de ce dernier Sil est noir il transmet un jeton noir P0 dtectera la terminaison si le jeton reu est blanc et sil est luimme blanc sinon P0 initialisera une autre dtection
50

25

19/11/2009

Terminaison sur un anneau


lors de rception de (message, m) faire tat actif; fait; mission de (message, m) vers j faire si mon-numro < j alors coulproc noir fsi; envoyer (message, m) j; fait; rception de (jeton, cj) de i+1 faire jetonpresent vrai; couljeton cj; si mon-numro = 0 alors si coulproc = blanc et couljeton = blanc alors terminaison dtecte sinon relancer dtection fsi; fsi; fait; mission de (jeton, cj) vers i-1 possible seulement si etat = passif et jetonpresent faire si coulproc = noir alors couljeton noir fsi; jetonpresent faux; envoyer (jeton, couljeton) i-1; coulproc blanc; fait attente de (message, m) ou fin faire 51 tat passif; fait;

Dtection de la Terminaison
Objectifs: Admettre une topologie quelconque pour les communications et ne pas se limiter un anneau Le jeton doit: dune part visiter tous les processus et 2. dautre part sassurer quil na plus de messages en transit
1.

Le jeton doit donc parcourir chaque arc du rseau que forme les processus et leurs voies de communication

52

26

19/11/2009

Dtection de la Terminaison
Hypothse: rseau fortement connect Il existe un circuit C qui comprend chaque arc du rseau au moins une fois

=> Il suffit de remplacer lanneau par un tel circuit !!!! l anneau

53

Dtection de la Terminaison
lors de rception de (message, m) faire tat actif; couleur noir; fait; attente de (message, m) faire tat passif; fait; rception de (jeton, j) faire nb j; jetonpresent vrai; si nb = taille(C ) et couleur = blans; alors terminaison dtecte; fsi; fait; mission de (jeton, j) possible seulement si etat = passif et jetonpresent faire si couleur = noir alors nb 0; sinon nb nb + 1; fsi; envoyer (jeton, nb) successeur (C, i); couleur blanc; jetonpresent faux; fait;

54

27

19/11/2009

Dtection de la terminaison
Nombre de messages changs pour dtecter la terminaison

Algo sur anneau: Au meilleur des cas: aucun message ne vient rveiller les processus dj devenu passifs aprs la visite du jeton => Nbr de messages = taille de lanneau = N Au pire des cas: une infinit de messages sil y a toujours s il un message qui vient rveiller un des processus devenu passif => La terminaison sera chaque fois relance

55

Partie 4 Les Interblocages

28

19/11/2009

Problmatique
Interblocage: situation pour un ensemble de processus (ou transactions) o chacun dentre eux est dans lattente de la ralisation dun vnement de la part de lautre Dans un systme centralis: il est difficile dviter, de prvenir et mme de dtecter les interblocages Dans un systme rparti: ENCORE PIRE !!!! Information ncessaire dissmine dans plusieurs machines

57

Problmatique
Un interblocage a lieu si

Une ressource est dtenue en mode exclusif Un processus dtient une ressource en mode non premptif et en attend une autre Il existe une attente circulaire P1 attend la libration dune ressource dtenue par P2 qui lui-mme attend une autre lui mme ressource dtenue par P3 et celui-ci attend que P1 libre sa ressource

58

29

19/11/2009

Modlisation des interblocages


Graphe dallocation des ressources: d allocation P P R1 P1 P2 R2 R R
Le processus P dsire la ressource R Le processus P dtient la ressource R

R3 P3

1. P1 dsire R1 dtenue par P2 ds d que P2 l l h P1 l bti t la lche lobtient 2. P2 dtient R2 et dsire R3 dtenue par P3 3. P3 dtient R3 et dsire R2 dtenue par P2
59

Modlisation des interblocages


Graphe des attentes:

Tout graphe dallocation de ressource avec une seule occurrence des ressources peut tre converti en graphe dattente WFG: Wait For Graph
attend attend

P1

P2

attend

P3

Prsence de cycle entre P2 et P3 => Possibilit dinterblocage

60

30

19/11/2009

Les diffrentes stratgies

1. 2.

Quatre stratgies de gestion des interblocages:


La politique de lautruche: ignorer le problme La dtection/ rcupration: permettre aux interblocages de se produire, les dtecter, puis tenter de les liminer La prvention: rendre de faon statique les interblocages structurellement impossibles Lvitement: viter les interblocages en distribuant les ressources avec prcaution

3.

4.

61

Dtection des interblocages


Solution dite optimiste Linterblocage est dtect partir du graphe dallocation des ressources et du graphe dattente WFG Dcision ncessite lexamen des WFG de tous les sites:

Solution centralise: Un site maintient un graphe global Solution distribue: Chaque site maintient une partie du graphe. Le graphe global est la runion des WFG. Linterblocage est dtect dans le WFG local Solution hirarchique: chaque site maintient le graphe de ses descendants

62

31

19/11/2009

Dtection des interblocages: solutions centralises

Principe:
Chaque site gre un graphe de ses propres ressources et processus Un coordinateur gre un graphe des ressources de tout le systme (qui est lunion des graphes individuels) Quand le coordinateur dtecte un cycle il tue un des cycle, processus pour supprimer linterblocage

=> conceptuellement simple et facile implmenter

63

Dtection des interblocages: solutions centralises


Problme: P bl
Comment regrouper linformation ? Plusieurs possibilits: 1. Chaque fois quon ajoute ou quon supprime un arc, on envoie un message au coordinateur => mise jour 2. Chaque processus envoie priodiquement la liste des arcs ajouts ou enlevs depuis la dernire mise jour => moins de messages 3. Le coordinateur demande les informations dont il a besoin Malheureusement aucune de ces mthodes ne marche correctement !!!

64

32

19/11/2009

Dtection des interblocages: solutions centralises


Exemple:

A R B
Machine 0

C T

A R B

C T

A R B

C T

Machine 1

Coordinateur

Coordinateur
B relche R et demande T mais le message de la machine 1 arrive avant la machine 0
65

FAUX INTERBLOCAGE (fantme) !!!!

Dtection des interblocages: solutions centralises


1ere solution au problme dinterblocage fantme: Algorithme en deux phases de Ho et Ramamoorthy

Une deuxime rcolte (2-Phases) des tables de ressources est demande en cas de dtection dinterblocage, si encore prsence de cycle alors on conclut un interblocage g Rduit les probabilit dinterblocages fantme mais ne llimine pas

66

33

19/11/2009

Dtection des interblocages: solutions centralises


2ere solution au problme dinterblocage fantme: Algorithme en une phase de Ho et Ramamoorthy

En plus des tables des ressources, les sites schangent les tables des processus => 2 tables en une seule phase de communication (One-Phase). Seules les transactions se trouvant dans les deux tables servent construire le WFG global Pas dinterblocages fantme mais peut ne pas dtecter les vrais interblocages (rare)

67

Dtection des interblocages: solutions centralises


3ere solution au problme dinterblocage fantme: Application de lalgorithme de Lamport pour avoir un temps global:

Message de la machine 1(M1) au coordinateur est provoqu par requte de la machine 0 => M1 est plus rcent que le message de la machine 0 au coordinateur (M0) Coordinateur reoit M1 => il souponne un interblocage => il ordonne toutes les machines de lui envoyer des messages avec estampille plus ancienne que celle de M1 => M0 lui sera immdiatement envoy et larc de R B aura disparu
68

34

19/11/2009

Dtection des interblocages: solutions centralises


Solutions centralises =>

Cot des frquentes transmission des graphes locaux Avec quelle frquence collecter les graphes locaux ? Problme avec les ventuels retards dacheminement des messages de mises jours des graphes de ressources => interblocages fantmes Problme de scalabilit Intolrance aux f fautes du coordinateur

Possibilit avec horloges logique globale de Lamport mais il existe des situations o llimination dun faux interblocage est plus complexe
69

Dtection des interblocages: solutions distribues


Dtection distribue de linterblocage tous les sites cooprent pour dtecter linterblocage du systme Chaque site a une connaissance partielle de ltat global du systme Dtection initie chaque indication dun possible interblocage: Expiration d un temporisateur au niveau dune transaction dun d une Dtection initie aussi bien par le site ou la transaction rside que par le site o la ressource attendue rside

70

35

19/11/2009

Dtection des interblocages: solutions distribues


Avantages par rapport une dtection centralise: Tolrance aux pannes, pas de goulot dtranglement concernant le site de contrle La dtection est initie seulement si le systme est suspect dtre interbloqu, et elle est excute seulement au sein des sites impliqus dans linterblocage suspect => plus efficace et moins coteux Possibilit dinteragir avec des algorithmes distribus de d interagir prvention et dvitement de linterblocage Ne sont pas forcment plus complexes que certains algorithmes centraliss (mmes difficults dans des environnements rpartis)

71

Dtection des interblocages: solutions distribues


Plusieurs techniques de dtection distribue de linterblocage:

Dtection de ltat global


Algo de Chandy et Lamport Ltat global ne change p p g g pas pendant un intervalle de temps p
Question: Apres combien de temps souponner linterblocage ?

72

36

19/11/2009

Dtection des interblocages: solutions distribues


Plusieurs techniques de dtection distribue de linterblocage:

Path-Pushing

Simuler les algorithmes centraliss Construction dune version simplifie du WFG g p global chaque q noeud Lorsquune detection est initie, chaque site envoie son information locale un nombre de sites voisins qui lutiliseront pour mettre jour leur WFG et la transmettent

73

Dtection des interblocages: solutions distribues


Plusieurs techniques de dtection distribue de linterblocage:

Edge-Chasing

Des messages sonde sont changs Si le message sonde est finalement recu p son emetteur g par dorigine alors un cycle est dtect => interblocage

74

37

19/11/2009

Dtection des interblocages: solutions distribues


Path-Pushing: Algo de Obermarck s (1982) Path Pushing: Obermarcks
Chaque site maintient un WFG local (un contrleur chaque site) La partie distante du WFG est reprsente par EX(-ternal) Si un cycle est dtect ninvoquant pas EX, il y a interblocage Si un cycle contenant EX est dtect, alors un interblocage est probable: Transmission du cycle tous les sites concerns par le cycle (transmission de la chane de caractre ) Sj reoit le message cycle, met jour son WFG et recherche un cycle Le site final est soit: Le site o le WFG local contient un cycle Le premier site o linterblocage global peut tre dmenti
75

Dtection des interblocages: solutions distribues


Path-Pushing: Algo de Obermarcks (1982) Possibilits dinterblocages fantmes Suppose que les messages sont mis et reus en squence Ncessite n(n-1)/2 messages de taille O(n) : n nombre de processus impliqus dans interblocage Amlioration: Badal algorithm: dtection trois niveaux bas sur lide que les cycles dinterblocages sont gnralement court

1er niveau: detecter les cycles de longueur 2 2eme niveau: si une ressource demande nest pas attribue apres un certain temps et aucun interblocage na t dtect au niveau 1 3eme niveau: Obermarcks algorithme
76

38

19/11/2009

Dtection des interblocages: solutions distribues


Edge chasing : Algo de Chandy-Misra-Hass (1983)
Repose sur les WFG et sur des messages de sondage On dfinit un message de sondage qui contient: Id du processus bloqu Id du processus metteur Id du processus concern par le message

77

Dtection des interblocages: solutions distribues


Edge chasing : Algo de Chandy-Misra-Hass (1983)
Un processus qui attend une ressource de la part dun autre processus envoie un message de sondage au(x) processus dtenant la ressource dsire Lorsquun processus reoit un message de sondage, il regarde sil attend lui-mme un (ou des) processus:

Si cest l cas, il met j le jour l message en conservant l premier le le i champs, en remplaant le second par son propre numro et le troisime par celui du processus quil attend

Le message est alors envoy au(x) processus sur le(s)quel(s) il est bloqu Si un message de sondage fait le tour et revient son metteur dorigine, il y a un cycle et donc un interblocage
78

39

19/11/2009

Dtection des interblocages: solutions distribues


Algo de Chandy-Misra-Hass (1983)
(0,8,0) (0,4,6)

4 0
(0,0,1)

6 7
Machine 2

(0,2,3)

3 5
Machine 1 (0,5,7)

Machine 0

Interblocage dtect Pas de faux interblocages Petits messages en nombre rduit Pas de WFG locaux

79

Dtection des interblocages: solutions distribues


Edge chasing : Algo de Chandy-Misra-Hass (1983)

1 message sonde sur chaque arc du WFG, donc m(n-1)/2 messages pour un interblocage avec m processus sur n sites.

Problme: Chaque processus impliqu dans un interblocage peut initier lalgo de dtection => dtection simultane dinterblocage => > > massacres inutiles Solution: Attribuer des priorits aux processus (exemple lestampille du processus )
80

40

19/11/2009

Dtection des interblocages: solutions hirarchiques


Chaque site se charge de dtecter les interblocages concernant ses descendants directs Deux principaux algorithmes: Menasce and Muntz Ho and Ramamoorthy

81

Dtection des interblocages: solutions hirarchiques


Algo de Menasce and Muntz (1979)
Une arborescence de sites appels contrleurs Les contrleurs feuilles grent les ressources et maintiennent un WFG local Les contrleurs intermdiaires dtectent les interblocages sur la base d WFG global = runion d WFG d ses d b dun l b l i des de descendants d t Lorsquun contrleur feuille modifie son WFG suite une requte dallocation ou libration de ressource, il transmet linformation son processus pre Le pre met jour son WFG et recherche le cycle puis transmet son propre pre (etc.)
82

41

19/11/2009

Dtection des interblocages: solutions hirarchiques


Algo de Ho and Ramamoorthy: one-phase centralized
deadlock algorithm Sites regroups en clusters distincts Un site central prend les dcisions A chaque cluster est affect un site de contrle Le site de contrle dun cluster recherche les cycles dans son WFG local et transmet ses informations au site central Le site central recherche les cycles globaux

83

Dtection des interblocages


S l ti Solutions centralises, di t ib t li distribues, hi hirarchiques hi Droulement:

Priodique; par exemple chaque heure A chaque modification dun WFG ( chaque requte concernant une ressource) Bas sur un seuil dinoccupation des ressources

Apres la dtection, il faut liminer linterblocage

84

42

19/11/2009

Elimination des interblocages


Algorithme dlimination de linterblocage: d limination l interblocage:

Orient processus Avorter tous les processus Avorter un processus et refaire le test => Quel processus choisir ? Le plus jeune, le plus vieux Celui qui dtient le plus de ressources C l i qui a l plus monopolis lUC au risque d Celui i le l li i davorter un t processus sur le point de finir Orient ressources Rquisitionner une ressource la fois et refaire le test =>Laquelle ? En fonction du temps pass par le processus
85

Prvention des interblocages


Techniques dites pessimistes

Principe des algo de prvention:

Construire prudemment le systme de faon rendre les interblocages structurellement impossibles

Plusieurs techniques:

Permettre aux processus de ne dtenir quune ressource la fois Exiger que les processus spcifient au dpart toutes les ressources dont ils ont besoin Obliger les processus relcher toutes les ressources dont ils disposent lorsquils en dsirent une nouvelle Ordonner toutes les ressources en classes et demander aux processus de les acqurir dans un ordre strictement croissant
86

43

19/11/2009

Prvention des interblocages


Dans un systme distribu disposant dune base de temps d une globale, il existe deux algorithmes ralistes, tous deux fonds sur lassociation dune estampille chaque processus (Algo de Lamport) Il sagit de respecter une allocation base sur un ordre croissant des estampilles 2 versions: 1. Wait/Die ou attente/mort 2. Wound/Wait ou blessure/attente

87

Prvention des interblocages Algo de type Wait/Die

Lorsquun processus est sur le point de se bloquer en attendant une ressource quun autre processus utilise, on regarde leurs estampilles =>

On nautorisera lattente que si le processus qui attend a une estampille plus petite (est plus vieux ) que le processus attendu => Pi dtient la ressource, Pj demande la ressource Si E(Pi) > E(Pj) alors Pj est autoris attendre sinon Pj est tu Les estampilles des processus en attente vont en croissant => cycle impossible Les vieux attendent, les jeunes meurent
88

44

19/11/2009

Prvention des interblocages Algo de type Wait/Die


MEURT Demande R Pi E=21

Dtient R Pi E=21

R
Demande R Pj E=15 Dtient R

R
Pj E=15

Pj E=15 ATTEND Pi E=21

Risque de famine pour les jeunes

89

Prvention des interblocages Algo de type Wound/Wait

Lorsquun processus est sur le point de se bloquer en attendant une ressource quun autre processus utilise, on regarde leurs estampilles => On nautorisera lattente que si le processus qui attend a une estampille plus grande (est plus jeune ) que le processus attendu => Pi dtient la ressource, Pj demande la ressource Si E(Pi) > E(Pj) alors {la demande de Pj est plus ancienne} Pi libre la ressource par premption et meurt Sinon Pj est autoris attendre

Les vieux rquisitionnent les ressources, les jeunes attendent

90

45

19/11/2009

Prvention des interblocages Algo de type Wound/Wait


ATTEND Demande R Pi E=21

Dtient R Pi E=21

R
Demande R Pj E=15 PREEMPT Dtient R

R
Pj E=15

Le jeune processus redmarre (garde son estampille) et attend la fin des vieux: pas de famine
91

Prvention des interblocages Algorithmes de LOMET


Dvelopps dans le cadre des bases de donnes Utilisent des techniques priori de prvention de linterblocage Deux algorithmes: Le premier duplique ltat global dallocation sur tous les sites Le second nentretient sur chaque site quune partie de ltat global

92

46

19/11/2009

Prvention des interblocages 1er Algorithme de LOMET

Bas sur le principe des annonces pralables Une transaction Ti => annonce les ressources quelles va utiliser Si une ressource utilise par la transaction Ti fait partie de lannonce de Tj => une relation de dpendance entre Ti et Tj => conflit potentiel ! Maintenir un graphe G des conflits potentiels Ti Tj ssi Ti bloque potentiellement Tj Existence de cycle dans G => risque dinterblocage Une ressource ne sera alloue une transaction Tk que si cette allocation ne cre pas de circuits dans G, auquel cas lallocation est retarde jusqu ce que la ressource objet du conflit potentiel soit 93 libre

Prvention des interblocages 1er Algorithme de LOMET


Ex:
Transaction T1: i11: annonce (r1, r2) i12: requte (r1) i13: requte (r2) Transaction T2: i21: annonce (r2, r3) i22: requte (r2) i23: requte (r3) Transaction T3: i31: annonce (r3, r1) i32: requte (r3) i33: requte (r1) Ordre dexcution des actions: i11, i21, i31, i12, i22, i32, i13, i23, i33 Graphe G des conflits potentiels:

T2

T1

T3

Lexcution de i32 bloque la transaction T3 car la ressource r3 fait partie de lannonce de T2 et son allocation introduira un circuit dans G. => Allocation de r3 refuse
94

47

19/11/2009

Prvention des interblocages 1er Algorithme de LOMET

Simule un algo centralis: Un site particulier prend les dcisions aprs lobservation du graphe de conflits potentiels Distribution de lalgo => dupliquer le graphe sur tous les sites => Disposant dune copie de ltat global et excutant le mme algo, tous les sites prennent les mmes dcisions dallocation Gestion des copies de ltat global gestion des copies de la files l tat dattente de lalgo de lexclusion mutuelle de Lamport Messages dannonce diffuss tous les sites et traits sur tous les sites dans le mme ordre en Messages de requetes obissant un mcanisme destampilles Messages de libration

95

Prvention des interblocages 2eme Algorithme de LOMET

Remplacer ltat global sur chaque site par un tat partiel Chaque site maintient un graphe local des conflits potentiels qui ne contient que les transactions dont les annonces sont relatives aux ressources quil gre Graphe local de chaque site = projection de G sur ce site

96

48

19/11/2009

Prvention des interblocages 2eme Algorithme de LOMET


Ex: r1, r2 et r3 respectivement g p gres p les sites s1, s2 et s3 par

Transaction T1: i11: annonce (r1, r2) i12: requte (r1); i13: requte (r2) Transaction T2: i21: annonce (r2, r3) i22: requte (r2); i23: requte (r3) Transaction T3: i31: annonce (r3, r1) q (r3); q (r1) i32: requte ( ); i33: requte ( ) La squence dexcution des actions: i11, i21, i31, i12, i22, i32 conduit aux tats locaux suivants: Sur le site s1 qui gre r1: T1 T3 Insuffisant pour dtecter Sur le site s2 qui gre r2: T2 T1 le conflit !!!! Sur le site s3 qui gre r3: T3 T2
97

Prvention des interblocages 2eme Algorithme de LOMET

Solution propose par Lomet: Remplacer la condition initiale dallocation dune ressource sur un site (le graphe G doit rester sans circuit) par une condition plus forte vrifiable localement.

Principe: Ordre total sur les transactions A chaque transaction lui sera associe sa date de cration ( q (son estampille) qui laccompagnera durant toute son excution Ti prcde Tj si E(Ti) < E(Tj)

98

49

19/11/2009

Prvention des interblocages 2eme Algorithme de LOMET

Autres dfinitions:

Soit Op1 et Op2 deux oprations; Op1 et Op2 sont permutables ssi lexcution de Op1 suivie de celle de Op2 donne le mme rsultat que lexcution de Op2 suivie de celle de Op1 Relation de prcdence => T1 prcde T2 ssi T1 et T2 excutent respectivement deux oprations notes Op1 et Op2 non permutables telles que Op1 est excute avant Op2

=> Les annonces dune transaction sont initialement diffuses aux sites concerns, conjointement avec lestampille de cette transaction

99

Prvention des interblocages 2eme Algorithme de LOMET


Ex: si lon a lordre T1 prcde T2 p p prcde T3

Transaction T1: i11: annonce (r1, r2) i12: requte (r1); i13: requte (r2) Transaction T2: i21: annonce (r2, r3) i22: requte (r2); i23: requte (r3) Transaction T3: i31: annonce (r3, r1) i32: requte (r3); i33: requte (r1)

Apres lexcution des annonces i11, i21, i31 on aura les graphes suivants:

sur le site s1 qui gre r1: T1 sur le site s2 qui gre r2: T1 sur le site s3 qui gre r3: T2

T3 : annoncent r1 en commun et T1 prcde T3 T2: annoncent r2 en commun et T1 prcde T2 T3: annoncent r3 en commun et T2 prcde T3
100

50

19/11/2009

Prvention des interblocages 2eme Algorithme de LOMET


Ex: si lon a lordre T1 prcde T2 p p prcde T3 Transaction T1: i11: annonce (r1, r2) i12: requte (r1); i13: requte (r2) Transaction T2: i21: annonce (r2, r3) i22: requte (r2); i23: requte (r3) Transaction T3: i31: annonce (r3, r1) i32: requte (r3); i33: requte (r1) Site s1 T1 T1 Site s2 T3 T1 T3 T1 T2 T2 Site s3 T2 T2 T3 T3
Ordre dexcution des actions: O i11, i21, i31, i12, i22, i32, i13, i23, i33

I22: T1 va attendre lexcution de T2 pour obtenir r2 CYCLE !!!!! => interblocage 101

Prvention des interblocages 2eme Algorithme de LOMET

Chaque site prviendra des interblocages locaux mais en tenant compte des ressources sur les sites distants annonces pralablement et estampilles Dans lexemple, i22 bloquera la transaction T2 car lallocation de r2 T2 crerait un circuit dans le graphe local du second site Dfinition dtats partiels cohrents avec ltat global => rduction du nombre de message par rapport au 1er algo de Lomet Rduction ventuelle du paralllisme (T2 bloque en attente de r2) Ordre dfini non sur les ressources mais sur les transactions => Pas de famine car une transaction deviendra la plus ancienne et donc la plus prioritaire sur les sites o elle a envoy ses annonces lorsque les transactions qui la prcdent auront termin leur excution
102

51

19/11/2009

Prvention des interblocages

La prvention = utilisation de la technique priori => Evite dannuler une transaction Traitement rparti de linterblocage => en prserver lautonomie Algo de Wound/Wait preferable Wait/Die car diminue le risque de famine pour les transactions jeunes Algos de Lomet: bass sur le systme dannonces => nest applicable que si les ressources (donnes) ne peuvent pas tre dfinies dynamiquement
103

52

Vous aimerez peut-être aussi