Anda di halaman 1dari 20

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 1


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Sisteme tolerante la defecte


Problema: funcţionarea corectă în prezenţa unor defecţiuni ale
sistemului

Proces_1

Proces_2 comparator Rezultate


Date de intrare

Proces_n

• aceeaşi ieşire pentru aceleaşi valori de intrare,


• valori apropiate la ieşire, pentru valori de intrare apropiate

22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 2


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Tipuri de defecte în sistemele distribuite

• Crash: la un moment dat un procesor


devine nefuncţional
– În ultimul pas, înainte de a se defecta, se
poate să fi trimis numai un subset din mesaje

• Byzantine: procesorul intră în stări arbitrare


şi trimite mesaje conţinând conţinut arbitrar

22/12/2009
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Consensul generalilor bizantini


• Generali armata bizantină
– comunică între ei prin legături directe punct la punct :
• fără erori
• nu interferă
– decid pe baza mesajelor schimbate
– alegere nr. finit alternative: atac, retragere, atac pe flancul
stâng, atac pe flancul drept.
• Metodă
– fiecare general i observă inamicul şi comunică observaţia sa v(i)
tuturor celorlalţi generali
– fiecare general combină valorile v(1), . . ., v(n) într-o singură
decizie
– pentru consens:
• aceeaşi metodă de decizie
• aceleaşi valori v(1), . . ., v(n)
22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 4
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Consensul generalilor bizantini (2)


• Problema:
– nu toţi generalii sunt loiali
– un general trădător j nu comunică aceeaşi valoare v(j) celorlalţi
• Condiţii pentru a aplica metoda specificată:
1. Fiecare general loial să obţină aceeaşi informaţie v(1) . . . . , v(n).
ƒ există trădători => un general nu foloseşte direct valoarea v(i)
obţinută direct de la generalul i.
2. Dacă generalul i este loial, atunci valoarea v(i) transmisă de el
trebuie folosită ca atare de fiecare general loial.
ƒ decizia nu poate fi "retragere" dacă toţi generalii loiali au trimis
valoarea "atac"
Rescriere (1):
1'. Oricare doi generali loiali folosesc aceeaşi valoare a lui v(i)
(indiferent dacă i este loial sau nu).
• Problema se reduce la o valoare trimisă de un singur
general (Comandant) celorlalţi generali (Locotenenti).
22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 5
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Problema Generalilor Bizantini


Un comandant trebuie să trimită un ordin celor n-1 locotenenţi ai
săi astfel ca:
IC1. Toţi locotenenţii loiali se supun aceluiaşi ordin.
IC2. Dacă comandantul este loial, atunci fiecare
locotenent loial se supune ordinului transmis de el.

IC1 si IC2 se numesc "interactive consistency conditions".


Observatii:
- când comandantul este loial, condiţia IC1 rezultă din IC2;
- comandantul nu este neapărat loial.
Pentru mesaje orale, mai mult de 2/3 din generali trebuie să fie
loiali =>
Cu mesaje orale şi un trădător nu există o soluţie pentru doar trei
generali, dar există soluţie pentru patru generali.
22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 6
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Exemple

Scenariul 1. Comandantul este loial, iar decizia este atac.

Comandant

atac atac
atac

atac atac
Locotenent 1 Locotenent 2 Locotenent 3
atac ***

***
atac

22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 7


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Exemple (2)
Scanariul 2. Comandantul este neloial şi transmite mesaje
diferite locotenenţilor.

Comandant

atac ***
retrag

atac retrag
Locotenent 1 Locotenent 2 Locotenent 3
retrag ***

***
atac
Există soluţie pentru un trădător între 4 generali.
22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 8
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Exemple (3)
Scenariul 3. Grupul conţine trei generali.
a) locotenentul 2 este neloial
b) comandantul este neloial

+-----------+ +-----------+
+-<-¦ comandant ¦->+ +-<-¦ comandant ¦>-+
¦ +-----------+ ¦ ¦ +-----------+ ¦
¦atac ¦atac ¦atac retrag ¦
¦ atac ¦ ¦ atac ¦
+-----------+------>+-----------+ +-----------+------->+-----------+
¦locotenent1¦ retrag¦locotenent2¦ ¦locotenent1¦ retrag ¦locotenent2¦
+-----------+<------+-----------+ +-----------+<-------+-----------+
(a) (b)

Nu există soluţie pentru 1 trădător intre 3 generali.


Se poate generaliza la m tradatori intre 3m generali (demo
constructivă).
22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 9
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Soluţia cu mesaje orale


Un mesaj oral îndeplineşte următoarele condiţii:
A1. Fiecare mesaj transmis este livrat corect.
A2. Receptorul unui mesaj ştie cine l-a trimis.
A3. Absenţa unui mesaj poate fi detectată.
A1 si A2 => un trădător nu poate interfera cu comunicarea între alţi doi
generali.
A3 => un trădător nu poate influenţa decizia prin ne-transmiterea unui
mesaj.
Convenţii:
- se foloseşte expresia un locotenent "obţine o valoare" şi nu "se supune
unui ordin"
- algoritmul foloseşte o funcţie majority cu proprietatea că dacă majoritatea
valorilor v(i) este v atunci valoarea funcţiei este v; ex:
1. valoarea majoritară în vi dacă ea există, altfel o valoarea implicită
Vdef (de exemplu, RETREAT);
2. mediana valorilor vi, presupunând că valorile sunt dintr-o mulţime
ordonată.
- un comandant trădător poate decide sa nu trimită un ordin; se ia o valoare
implicită Vdef (de ex Retragere).
22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 10
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Soluţia cu mesaje orale (2)


Algoritmul OM(n,0).
(1) Comandantul trimite valoarea sa fiecărui locotenent.
(2) Fiecare locotenent foloseşte valoarea primită de la comandant, sau
foloseşte Vdef dacă nu primeşte nici o valoare.

Algoritmul OM(n,m), m > 0.


(1) Comandantul trimite valoarea sa fiecărui locotenent.
(2) For each Locotenent i
fie vi valoarea primită de la comandant, sau Vdef dacă nu primeşte nici o
valoare.
Locotenentul i acţionează drept comandant şi trimite valoarea vi fiecăruia
din ceilalţi n - 2 locotenenţi folosind OM(n - 1,m - 1)
(3) For each i and each j <> i
fie vj valoarea pe care Locotenentul i o primeşte de la Locotenentul j în
pasul (2) (folosind Algoritmul OM(n - 1, m - 1)), sau Vdef dacă nu
primeşte nici o valoare.
Locotenentul i foloseşte valoarea majority (v1 . . . . . vn-1 ).
22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 11
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Soluţia cu mesaje orale (3)


Exemplu pentru m = 1, n = 4, Locotenentul 3 este trădător.

Pas 1 OM(4,1) - comandantul trimite v tuturor locotenenţilor.

Pas 2 OM(4,1) - L1 trimite valoarea v celorlalţi locotenenţi folosind OM(0)


- L2 trimite valoarea v celorlalţi locotenenţi folosind OM(0)
- L3 trimite alte valori (x, y)

Pas 3 OM(4,1) - L1 calculează majority(v, v, x) = v


- L2 calculează majority(v, v, y) = v

C
v v
v

L1 L2 L3
v v v v x y

L2 L3 L3 L1 L1 L2

22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 12


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Soluţia cu mesaje orale (4)


Exemplu pentru m = 1, n = 4, Comandantul este trădător

Pas 1 OM(4,1) - comandantul trimite x, y şi nimic locotenentilor.

Pas 2 OM(4,1) - L1 trimite valoarea x celorlalţi locotenenţi folosind OM(0)


- L2 trimite valoarea y celorlalţi locotenenţi folosind OM(0)
- L3 trimite valoarea Vdef celorlalţi locotenenţi folosind OM(0)

Pas 3 OM(4,1) - L1, L2 şi L3 calculează majority(x, y, Vdef) obţinând aceeaşi


valoare.
C
x
y
L1 L2 L3
x x y y vdef vdef

L2 L3 L3 L1 L1 L2

22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 13


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Soluţia cu mesaje orale (5)


Complexitate
OM(n,m) transmite n-1 mesaje în primul pas şi invocă n-1 execuţii separate ale
algoritmului OM(n-1,m - 1).
Fiecare din acestea trimite n-2 mesaje
În pasul 2 se transmit în total (n-1)(n-2) mesaje.
În pasul m+1 se transmit (n-1)(n-2)...(n-m-1) mesaje deci numărul total de
mesaje este O(nm+1).

Notaţie
Algoritmul OM(n-k,m-k) va trimite o valoare prefixată de o secvenţă de k
numere ale locotenenţilor.

Corectitudine
LEMA 1. Pentru orice m şi k, OM(n,m) satisface IC2 dacă numărul n de
generali este mai mare de 2k+m şi sunt cel mult k trădători.
TEOREMA 1. Pentru orice m, algoritmul OM(n,m) satisface condiţiile IC1 şi
IC2 dacă numărul de generali n este mai mare de 3m şi sunt cel mult m
trădători.
22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 14
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Soluţia cu mesaje semnate


Se adaugă condiţia:
A4 (a) Semnătura unui general loial nu poate fi falsificată şi
orice alterare a conţinutului mesajului semnat poate fi
detectată
(b) Oricine poate verifica autenticitatea semnăturii unui
general.

În schimb, semnătura unui trădător poate fi falsificată de un alt trădător.


Algoritmul funcţionează pentru orice număr de generali (> m+2)
În algoritm:
- comandantul trimite un ordin semnat fiecărui locotenent;
- fiecare locotenent adaugă semnătura la ordin şi-l transmite
celorlalti care adaugă semnăturile lor şi îl transmit celor care nu l-
au semnat ş.a.m.d.

22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 15


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Soluţia cu mesaje semnate (2)


Algoritmul foloseşte o functie choice care se aplică unei mulţimi
de ordine pentru a obţine un singur ordin. Cerinţe:
1. Dacă mulţimea V constă dintr-un singur element v, atunci choice(V)=v.
2. choice(Φ) = RETREAT, unde Φ este mulţimea vidă.

O definiţie posibilă este ca choice(V) să fie elementul median al


lui V, presupunând că există o ordine a elementelor.

Notaţii:
– x:i este valoarea x semnată de generalul i
– x:j:i este valoarea x semnată de j, apoi valoarea x:j semnată de i
– generalul 0 este comandantul
– locotenentul i păstreaza mulţimea Vi a ordinelor bine semnate primite
(dacă comandantul este loial, Vi ar trebui să conţină doar un element)

22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 16


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Soluţia cu mesaje semnate (3)


Algoritm SM (m).
Iniţial Vi = Φ.
(1) Comandantul semnează şi trimite valoarea sa fiecărui locotenent.
(2) For each i:
(A) If Locotenent i primeşte un mesaj de forma v: 0 de la comandant şi
nu a primit încă nici un ordin then
(i) Vi := {v};
(ii) transmite mesajul v:0:i fiecăruia din ceilalţi locotenenţi.
(B) If Locotenent i primeşte un mesaj de forma v:0:jl: … :jk şi v nu este
în Vi then
(i) adaugă v la Vi;
(ii) if k < m then trimite mesaj v:0:jl: . . . :jk:i fiecărui locotenent
diferit de jl . . . jk.
(3) For each i:
when Locotenent i nu mai primeşte mesaje el execută ordinul choice(
Vi).
22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 17
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Soluţia cu mesaje semnate (4)\


• Algoritmul SM(1) pentru cazul a trei generali când
comandantul este trădător.

COMMANDER

“attack”:0 “retreat”:0

“attack”:0:1
LIEUTENANT LIEUTENANT
1 2
“retreat”:0:2
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Soluţia cu mesaje semnate (5)


Detectare oprire mesaje (pasul 3)
gestiunea mesajelor primite
• pentru fiecare secvenţă de locotenenţi j1, ... , jk, k<=m, un
locotenent poate primi cel mult un mesaj de forma v:0:j1: … :jk
în pasul (2);
• se cere ca locotenentul k sa trimită v:0:jl: … :jk sau să trimită un
mesaj special care să raporteze că nu va trimite un astfel de
mesaj;
• fiecare receptor poate astfel decide cand a primit toate mesajele
folosire timer
• pentru a detecta când nu vor mai sosi mesaje.
Corectitudine
TEOREMA 2. Pentru orice m, Algoritmul SM(m) rezolvă
problema generalilor bizantini dacă există cel mult m
trădători.
22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 19
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Crăciun Fericit !

22/12/2009 Algoritmi Paraleli si Distribuiti – Curs 12 20

Anda mungkin juga menyukai