Académique Documents
Professionnel Documents
Culture Documents
Informatique Rpartie
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
19/11/2009
19/11/2009
19/11/2009
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
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
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
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}
19/11/2009
13
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
0
8
0 8 12 2 12
OK OK
0
OK
12
1
OK
2
Entre en section critique
2(N-1) messages
15
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
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
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
Centralis
Plantage du coordinateur
Distribu
2(n-1)
2(n-1)
Jeton
19
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
21
22
11
19/11/2009
23
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
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
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
29
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
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
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
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
33
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
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
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
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
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
39
40
20
19/11/2009
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
22
19/11/2009
BESOIN DUN ETAT GLOBAL OU LES VOIES DE COMMUNICATION SONT VIDES !!!
45
46
23
19/11/2009
47
24
19/11/2009
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
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
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
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
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
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
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
60
30
19/11/2009
1. 2.
3.
4.
61
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
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
63
64
32
19/11/2009
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
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
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
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
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
70
35
19/11/2009
71
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
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
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
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
77
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
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
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
81
41
19/11/2009
83
Priodique; par exemple chaque heure A chaque modification dun WFG ( chaque requte concernant une ressource) Bas sur un seuil dinoccupation des ressources
84
42
19/11/2009
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
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
87
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
Dtient R Pi E=21
R
Demande R Pj E=15 Dtient R
R
Pj E=15
89
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
90
45
19/11/2009
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
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
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
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
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
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
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
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
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
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
I22: T1 va attendre lexcution de T2 pour obtenir r2 CYCLE !!!!! => interblocage 101
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
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