Sunteți pe pagina 1din 20

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Bucuresti - Facultatea de Automatica si Calculatoare 2 2 / 1 2 / 2 0 0
Bucuresti - Facultatea de Automatica si Calculatoare 2 2 / 1 2 / 2 0 0

22/12/2009

Algoritmi Paraleli si Distribuiti – Curs 12

1

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Bucuresti - Facultatea de Automatica si Calculatoare Sisteme tolerante la defecte Problema: funcţionarea
Sisteme tolerante la defecte Problema: funcţionarea corectă în prezenţa unor defecţiuni ale sistemului
Sisteme tolerante la defecte
Problema: funcţionarea corectă în prezenţa unor defecţiuni ale
sistemului
Proces_1Proces_1
Proces_2Proces_2
comparatorcomparator
Rezultate
Date de intrare
Proces_nProces_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
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare Tipuri de defecte în sistemele
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 •
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare Consensul generalilor bizantini •
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),
decizie
., v(n) într-o singură
– 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) •
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare Consensul generalilor bizantini (2) •
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
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare Problema Generalilor Bizantini Un
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

Bucuresti - Facultatea de Automatica si Calculatoare Exemple Scenariul 1. Comandantul este loial, iar decizia
Exemple Scenariul 1. Comandantul este loial, iar decizia este atac. ComandantComandant atac atac atac atac
Exemple
Scenariul 1. Comandantul este loial, iar decizia este atac.
ComandantComandant
atac
atac
atac
atac
atac
LocotenentLocotenent 11
LocotenentLocotenent 22
LocotenentLocotenent 33
atac
***
***
atac

22/12/2009

Algoritmi Paraleli si Distribuiti – Curs 12

7

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Bucuresti - Facultatea de Automatica si Calculatoare Exemple (2) Scanariul 2. Comandantul este neloial şi
Exemple (2) Scanariul 2. Comandantul este neloial şi transmite mesaje diferite locotenenţilor. atac *** retrag
Exemple (2)
Scanariul 2. Comandantul este neloial şi transmite mesaje
diferite locotenenţilor.
atac
***
retrag
atac
retrag
LocotenentLocotenent 11
LocotenentLocotenent 22
LocotenentLocotenent 33
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
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare Exemple (3) Scenariul 3. Grupul conţine
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¦
+-----------+<------+-----------+
(a)
+-----------+------->+-----------+
¦locotenent1¦ retrag ¦locotenent2¦
+-----------+<-------+-----------+
(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
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare Soluţia cu mesaje orale Un mesaj
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
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare Soluţia cu mesaje orale (2) Algoritmul
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
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
vv
CC vv
vv
L1L1
L3L3
L2L2
vv
vv
vv
vv
xx
yy
L2L2
L3 L3
L3L3
L1L1
L1L1
L2L2

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
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare Soluţia cu mesaje orale (4) Exemplu
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.
xx CC
yy
L1L1
L3L3
L2L2
xx
xx
yy
yy
vdefvdef
vdefvdef
L2L2
L3 L3
L3L3
L1L1
L1L1
L2L2

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
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare Soluţia cu mesaje orale (5) Complexitate
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)
mesaje este O(n m+1 ).
(n-m-1)
mesaje deci numărul total de
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ă
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare Soluţia cu mesaje semnate Se adaugă
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
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare Soluţia cu mesaje semnate (2) Algoritmul
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
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 SoluSoluţţiaia cucu mesajemesaje
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare
SoluSoluţţiaia cucu mesajemesaje semnatesemnate (4)(4)\\
Algoritmul SM(1) pentru cazul a trei generali când
comandantul este trădător.
COMMANDERCOMMANDER
“attack”:0
“retreat”:0
“attack”:0:1
LIEUTENANTLIEUTENANT
LIEUTENANTLIEUTENANT
22
11
“retreat”:0:2
“attack”:0 “retreat”:0 “attack”:0:1 LIEUTENANTLIEUTENANT LIEUTENANTLIEUTENANT 22 11 “retreat”:0:2
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare Soluţia cu mesaje semnate (5) Detectare
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare Soluţia cu mesaje semnate (5) Detectare
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

Bucuresti - Facultatea de Automatica si Calculatoare Cr ă ciun Fericit ! 22/12/2009 Algoritmi Paraleli si
Cr ă ciun Fericit !
Cr ă ciun Fericit !

22/12/2009

Algoritmi Paraleli si Distribuiti – Curs 12

20