Sunteți pe pagina 1din 9

Introducere Modelul Message-Passing - recapitulare Algoritmul Chandy-Lamport Bibliografie

Fundamentele sistemelor distribuite

Stare globală

Mitică Craus

Univeristatea Tehnică ”Gheorghe Asachi” din Ias, i

1/ 9
Introducere Modelul Message-Passing - recapitulare Algoritmul Chandy-Lamport Bibliografie

Cuprins

Introducere
Modelul Message-Passing - recapitulare
Algoritmul Chandy-Lamport
Descriere
Pseudocod
Evaluarea
Bibliografie

2/ 9
Introducere Modelul Message-Passing - recapitulare Algoritmul Chandy-Lamport Bibliografie

Introducere
• Starea globală a unui sistem distribuit este compusă din stările locale ale unităt, ilor
de procesare s, i starea mesajelor aflate ı̂n tranzit (trimise dar nereceptionate).
• ”Fotografia” stării globale, la un moment dat, ı̂nseamnă o stare consistentă ı̂n care a
sistemul distribuit a fost recent.
• Consistent, a constă ı̂n următoarele:
• Dacă unitatea de procesare pj a primit un mesaj de la unitatea de procesare pi , atunci
starea globala trebuie sa ı̂nregistreze trimiterea mesajului de către pi s, i recept, ionare
mesajului de către pj .
• Dacă unitatea de procesare pi a trimis un mesaj către unitatea de procesare pj , atunci
stare globala trebuie sa ı̂nregistreze trimiterea acestui mesaj. Recept, ionarea mesajului
de către pj poate să nu fie ı̂nregistrată ı̂n starea globală; este posibil ca primirea
mesajului să se fi produs după momentul ”fotografierii”.
• O ”fotografie” a unui sistem distribuit conţine ultimele evenimente care au fost
ı̂nregistrate pentru fiecare unitate de procesare.
• Pentru a fi consistetă, ”fotografia” trebuie să ı̂nregistreze, pentru orice recepţie a unui
mesaj, trimiterea acestuia.
• Starea globală cont, ine si informat, ile despre mesajele ı̂n tranzit, dacă există astfel de
stări de mesaje. Aceasta este o consecint, ă a faptului că recept, ionarea unui mesaj
poate să nu fie ı̂nregistrată ı̂n starea globală, dacă primirea mesajului nu s-a produs ı̂n
momentul ”fotografierii”.

3/ 9
Introducere Modelul Message-Passing - recapitulare Algoritmul Chandy-Lamport Bibliografie

Modelul Message-Passing - recapitulare


• Un sistem Message-Passing este compus din n unităţi de procesare p0 , p1 , . . . pn−1 care
comunică ı̂ntre ele prin mesaje transmise pe canalele de comunicare care le conectează.
• Topologia de comunicare este reprezentată printr-un graf G = (v , E ), care asignează fiecărui
vârf vi o unitate de procesare pi . Fiecare muchie ek ∈ E reprezintă un canal de comunicare
directă ı̂ntre două unităţi de procesare pi şi pj .
• Fiecare unitate de procesare pi poate fi ı̂ntr-o stare din mulţimea de stări Qi . Fiecare stare
include două mulţimi de regiştri: (inbufi k , k = 1, . . . , d) şi (outbufi k , k = 1, . . . , d), unde d este
gradul vârfului vi asignat lui pi .
• Un registru inbufi k conţine mesajele pe care unitatea de procesare pi le-a primit de la
unitatea de procesare vecină pj , prin canalul de comunicare directă k. Un registru outbufi k
conţine mesajele pe care unitatea de procesare pi le-a transmis spre unitatea de procesare
vecină pj , prin canalul de comunicare directă k.
• Mulţimea de stări Qi conţine o submulţime de stări speciale, ı̂n care regiştrii inbufl nu
memorează nici un mesaj.
• Evenimentele sunt paşi computaţionali şi paşi de comunicare.
• În timpul unui pas computaţional, o unitate de procesare pi cites, te s, i apoi resetează regis, trii
inbufi k , k = 1, . . . , d s, i produce valori noi pentru outbufi k , k = 1, . . . , d, schimbându-s, i ı̂n
acelas, i timp starea internă.
• Pasul de comunicare ı̂nseamnă o operat, ie de transmisie, i.e. un mesaj memorat ı̂n outbuf-ul
unei unităt, i de procesare pi este transmis, prin canalul de comunicare directă, la destinat, ia
pj , unde va fi memorat ı̂n inbuf .
4/ 9
Introducere Modelul Message-Passing - recapitulare Algoritmul Chandy-Lamport Bibliografie

Algoritmul Chandy-Lamport - descriere

1. Oricare unitate de procesare poate iniţia algoritmul de determinare (”fotografiere”) a


stării globale. Presupunem că aceasta este pi .
2. Astfel, pi ı̂nregistrează starea sa, după execuţia pasului computaţional curent, adică
nu ı̂nregistrează mesaje primite si neprelucrate; apoi, trimite spre vecini
(ı̂nregistrează ı̂n outbuf ) o ”invitaţie” (marker ) pentru determinarea stării globale.
3. Atunci când o unitate de procesare primes, te un marker , act, ionează astfel:
3.1 Dacă starea sa nu este ı̂nregistrată, atunci realizează aceasta, după execuţia pasului
computaţional curent; apoi, trimite spre canalele externe (ı̂nregistrează ı̂n outbuf ) un
marker destinat vecinilor săi.
3.2 Dacă starea sa era salvată, atunci actualizează ı̂nregistrarea stării sale cu mesajelor
primite de la expeditorul marker -ului, după salvarea init, ială a stării sale s, i ı̂nainte de
primerea marker -ului respectiv.
4. O unitate de procesare termină algoritmul atunci când a primit câte un marker de la
fiecare vecin. Înainte de terminare, aceasta trimite lui pi starea sa.
5. Unitate de procesare pi analizează mesajele primite şi construieşte ”fotografia”.

5/ 9
Introducere Modelul Message-Passing - recapitulare Algoritmul Chandy-Lamport Bibliografie

Algoritmul Chandy-Lamport - pseudocod


Notat, ii:
• S este o structură de date care memorează starea unei unităt, ii de procesare, primită de pi .
• CS este este o structură de date care memorează starile primite de unitatea de procesare pi .
Premise:
• Digraful care reprezintă topologia de comunicare este tare conex, ı̂ntre oricare două unităt, i
de procesare este un drum format din arce cu aceeas, i orientare.
• Iniţial, CS, şi S sunt 0.
/
Rezultate: CS va memora stările primite de unitatea de procesare pi , din care aceasta va construi
starea globală.
Pseudocod pentru unitatea de procesare pi
Chandy Lamport SG(pi )
1 record state after the current computational step Pseudocod pentru unitatea de procesare pj , j 6= i,
2 send a maker to all neighbours / ∗ put it in outbufi ∗ / j ∈ {0, 1, . . . , n − 1}
3 for k ← 1 to di Chandy Lamport SG(pj )
4 do wait a marker 1 for k ← 1 to dj
5 when arrive 2 do wait a marker
6 update the recorded state with the messages 3 when arrive
7 received meanwhile from sender 4 if state is not recorded
8 / ∗ after recording its state and before receiving 5 then record state after the current computational step
9 the marker ∗ / 6 send a maker to all neighbours
10 for k ← 1 to n − 1 7 else update the recorded state with the messages
11 do wait a state S 8 received meanwhile from sender
12 when S arriveS 9 send the recorded state to pi
13 CS ← CS S / ∗ add S to the colected states ∗ /
14 build the snapshot
6/ 9
Introducere Modelul Message-Passing - recapitulare Algoritmul Chandy-Lamport Bibliografie

Evaluarea algoritmul Chandy-Lamport

Teorema (1)
Algoritmul Chandy-Lamport se termină in timp finit.

Demonstraţie.
Unităţile de procesare pj , j 6= i vor ı̂nregistra starea lor ı̂n timp finit, deoarece pi trimite un
marker câtre vecini, după care marker -ul se propagă ı̂n toată ret, eaua.
Vecinii lui pi vor ı̂nregistra starea după un timp finit, deoarece se presupune că nici un mesaj
nu rămâne la infinit pe un canal de comunicat, ie.
Dacă o unitate de procesare pj nu a ı̂nregistrat starea s, i face aceasta după ce primes, te un
marker , vecinii săi, care nu au inregistrat starea, o vor face s, i ei după ce vor primi marker -ul de la
pj .
Cum digraful care reprezintă topologia de comunicare este tare conex, ı̂ntre oricare două
unităt, i de procesare este un drum format din arce cu aceeas, i orientare. Astfel, ı̂ntre pi şi
pj (∀) j, j 6= i, j ∈ {0, 1, . . . , n − 1} există o un drum (pi = pi0 , pi1 , . . . pim = pj )
Prin inducţie, rezultă că după un timp finit pj va ı̂nregistra starea sa. Astfel, pi1 va ı̂nregistra
starea sa după un timp finit, deoarece se presupune că nici un mesaj nu rămâne la infinit pe un
canal de comunicat, ie, deci nici marker -ul trimis de pi vecinilor săi. Dacă, pik va ı̂nregistra starea
sa după un timp finit, atunci şi pik+1 va ı̂nregistra starea sa după un timp finit, deoarece marker -ul
trimis de pik vecinilor săi, după ı̂nregistrarea stării sale, va ajunge la pik+1 ı̂n timp finit.

7/ 9
Introducere Modelul Message-Passing - recapitulare Algoritmul Chandy-Lamport Bibliografie

Evaluarea algoritmul Chandy-Lamport

Teorema (2)
Algoritmul Chandy-Lamport se termină cu o ”fotografie” a unei stări globale consistente.

Demonstraţie.
După primirea unui marker , o unitate de procesare nu va mai inregistra mesajele trimise spre
unitatea respectivă.
Să presupunem acum că există o unitate de procesare pd , care ı̂nregistrează primirea de la
unitatea de procesare ps a unui mesaj m, dar ps nu ı̂nregistrează trimiterea acestui mesaj.
Aceasta ı̂nseamnă că mesajul m a fost trimis de ps după salvarea stării sale, adică după
trimiterea marker -ului către vecini.
Deoarece pd ı̂nregistrează primirea lui m, acest mesaj nu putea fi trimis de ps după trimiterea
marker -ului, pentru că ı̂n această situat, ie marker -ul ar fi ajuns la pd ı̂naintea lui m şi prin urmare
primirea lui m nu ar mai fi fost ı̂nregistrat de pd .
În consecint, ă, nici o unitate de procesare nu va ı̂nregistra primirea unui mesaj fără ca
expeditorul să fi ı̂nregistrat trimiterea mesajului.

8/ 9
Introducere Modelul Message-Passing - recapitulare Algoritmul Chandy-Lamport Bibliografie

Bibliografie

• K. M. Chandi, L. Lamport, Distributed Snapshot: Determining Global States of


Distributed Systems, ACM Transactions on Computer System, Vol. 3, No. 1, 1985,
pp. 63-75.

9/ 9

S-ar putea să vă placă și