Sunteți pe pagina 1din 12

Cauzalitate i timp

n sistemele distribuite asincrone nu se dispune de o modalitate de msurare a timpului real. Pentru a cunoate ordinea relativ n care au loc evenimentele se studiaz relaiile de
cauzalitate dintre ele.
Vom considera n continuare sisteme distribuite asincrone de tip MP. Evenimentele vor fi numai de calcul (dac nu se specific altceva).
Definiie !ie o e"ecuie fi"at a sistemului i #$ % dou evenimente ale sale. &punem c 1 se ntmpl naintea lui 2 (happens before) i notm
#

% $ dac are loc una din condiiile


#.# i % sunt evenimente ale aceluiai procesor i # apare n naintea lui %.
%.# trimite un mesa' m de la procesorul pi la procesorul p'$ iar % este evenimentul de primire al mesa'ului m de la pi (% este primul eveniment de calcul al lui p' care apare n
dup livrarea lui m).
(. un eveniment a.. #

i perec)ea $ % satisface condiia # sau % (cu n locul lui #).


*bservatie

este o ordine parial irefle"iv.


Definiie: +ac ,e"ec(-$ ) este un se.ment de e"ecuie$ un amestec cauzal (causal shuffle) al lui este orice permutare a lui care satisface
/i, 1 n 0$ $ i,i (i noteaz subirul lui care se refer doar la procesorul pi).
/+ac un mesa' m este trimis n n evenimentul al lui pi$ atunci n precede livrarea lui m.
Lema 1 !ie ,e"ec(-$ ). *rice ordonare total a evenimentelor lui care e consistent cu relaia

este un amestec cauzal al lui .


Lema 2 !ie , e"ec(-$ ). !ie un amestec cauzal al lui . 0tunci 1,e"ec(-$ ) este un se.ment de e"ecuie similar lui .
Pentru a 2observa3 relaia

dintr/o e"ecuie$ procesoarele pot adu.a un ta. numit logical timestamp pentru fiecare eveniment (de calcul). 0ceast asociere trebuie s fie a..
#

% 45(#)645(%).
7n al.oritm de construcie a timestamp/urilor este urmtorul
!iecare procesor pi pstreaz o variabil local ntrea. 45i numit ceas lo.ic$ iniial 8.
!iecare eveniment de calcul este e"tins cu o nou operaie care atribuie lui 45i
ma" (valoarea curent a lui 45i$ valoarea ma"im a unui timestamp
primit n acel eveniment)9#.
!iecare mesa' trimis ntr/un eveniment$ este tampilat cu valoarea nou a lui 45i.
5imestampul unui eveniment este valoarea lui 45i calculat n timpul acelui eveniment. :elaia de ordine ntre timestampuri este relaia de ordine din N.
Teorema 1 !ie o e"ecuie i #$ % dou evenimente din .
+ac #

% atunci 45(#)645(%).
*bservatie +ac 45(#)45(%) ( #

%). Este ns posibil ca 45(#)645(%) i totui (#

%). ;ecauzalitatea nu/i surprins deoarece N este total ordonat$ iar

este o
ordine parial.
Vom folosi vectori cu componente ntre.i pentru a surprinde necauzalitatea.
Definiie: &punem c # i % sunt concurente (# % ) n $ dac
( #

%) ( %

#).
+in lemele # i % rezult c dac # % atunci e"ist # i % similare cu a.. #
#
% i %
%
#.
-onsiderm urmtorul al.oritm
fiecare procesor pi pstreaz un tablou n/dimensional V-i (ceasul vectorial)$ cu componente ntre.i$ iniial 8.
fiecare eveniment de calcul este e"tins cu urmtoarele operaii
/ V-i <i=, V-i <i=9#
/ 'i V-i <'=,ma"(V-i <'=$ cea mai mare component ' a timestampurilor primite n acest eveniment)
/ mesa' trimis este tampilat cu noua valoare a lui V-i.
*bservatie
#
8
.V-'(i) este o 2estimare> a lui V-i<i= inut de p' (numrul de pai e"ecutat de pi p?n n acest moment).
%
8
.Pentru p'$ n orice confi.uraie accesibil V-'<i=V-i<i= i (ntruc?t numai pi mrete valoarea lui V-i<i=).
Pe mulimea vectorilor definim relaia de ordine parial v#v% i, n $ # v#<i=v%<i=. v#6v%v#v%$ v#v%.
7rmrind definiia relaiei

i modul de construcie a ceasurilor vectoriale rezult


Teorema 2 !ie o e"ecuie i #$ % evenimente ale lui .
#

% V-(#)6V-(%).
*bservatie :ezult c # %V-(#) i V-(%) sunt incomparabile (timestampurile vectoriale surprind (captureaza) concurena).
+efectul ma'or al acestui mecanism este c se mrete enorm comple"itatea de comunicare. +in pcate are loc
Teorema 3 +ac V- este o funcie care asociaz fiecrui eveniment al unei e"ecuii oarecare un vector din R
@
a.. concurena s fie capturat$ atunci @n.
+em. -onsiderm un sistem distribuit cu topolo.ia un .raf complet i e"ecuie n care fiecare procesor pi trimite secvenial mesa'e la toate celelalte$ cu e"cepia lui pi/# n ordinea
pi9#$ pi9%$A$ pn/#$ p8$A$ pi/%. +up ce toate mesa'ele au fost primite$ fiecare pi primete secvenial mesa'ele transmise lui n ordine descresctoare a indicelui transmitorului$ ncep?nd
cu pi/# pi/#$ pi/%$ A$ p8$pn/#$ A$ pi9% (pi nu primete mesa' de la pi9#).
Pentru fiecare procesor pi notm cu ai primul eveniment de trimitere i cu bi ultimul eveniment de primire.
-um n un procesor trimite toate mesa'ele sale nainte de a primi unul rezult c relaia de cauzalitate este simpl i nu include relaii derivate de tranzitivitate. -um nu mesa' de la
pi9# la pi i lipsa tranzitivitii n patternul de trimitere descris de $ obtinem
(B)i 8 i n/#$ ai9# bi.
Pe de alt parte$ p'pi$ primul eveniment de trimitere al lui pi9# influeneaz cauzal un anumit mesa' de primire al lui p'. :ezult
(BB)i$' 8i'n/# ai9#

b'.
(Pentru ',i9#$ ai9# i b',bi9# apar la acelai procesor$ deci ai9#

b'.
Pentru 'i9#$ cum 'i$ pi9# trimite un mesa' lui p' n e"ecuieC ai9# este sau acest eveniment sau se nt?mpl naintea trimiterii mesa'ului de la pi9# lui p'. Primirea de la pi9# este sau e.al
cu b' sau se nt?mpl naintea lui b'.)
!i"m i 8in/#. +in (B) ai9# bi. -um V- captureaz concurena rezult
c V-(ai9#) i V-(bi) sunt incomparabile. +eci$ o component r a.. V-<r=(bi)6V-<r=(ai9#). ;otm acest indice cu l(i).
0m definit o funcie lD8$ A$ n/#ED8$ A$ @/#E. +ac artm c l este in'ectiv teorema este demonstrat.
Presupunem c i$' l(i),l('),r. +in definiia funciei l$ rezult V-<r=(bi)6V-<r=(ai9#) i V-<r=(b')6V-<r=(a'9#). -onform (BB)$rezult
ai9#

b'$ deci V-(ai9#)V-(b'). 0m obtinut


V-<r=(bi)6V-<r=(ai9#) V-<r=(b')6V-<r=(a'9#)
care contrazice (BB) pentru ',i i i,'9#F
Definiia relaiei

pentru sisteme cu memorie partajat


!ie o e"ecuie ntr/un sistem distribuit cu memoria parta'at. 0tunci #

% dac
#.# i % au aceeai valoare (se refer la acelai procesor pi) i #
apare n naintea lui %.
%. # i % sunt elemente conflictuale acceseaz am?ndou aceeai variabil parta'at$ unul dintre ele este un Grite i # apare naintea lui % n .
(. un eveniment a.. #

i perec)ea $ % satisface condiia # sau % (cu n locul lui # ).


Mai departe totul se poate adapta ca si in cazul sistemelor de tip MP.
Tieturi
ntr/un sistem distribuit nu e"ist un observator care s nre.istreze un instantaneu al strii sistemului. 0ceasta ar fi necesar pentru rezolvarea unor probleme ca restaurarea
sistemului dup o cdere$ determinarea e"istenei unui deadloc@ sau detectarea terminrii.
&e poate obine un instantaneu apro"imativ prin cooperarea procesoarelor. Pentru simplificarea e"punerii vom presupune c fiecare eveniment de calcul primete cel mult un mesa' (se
poate implementa o coad local a mesa'elor sosite i proces?nd un sin.ur mesa' la fiecare pas).
!ie o e"ecuie fi"at. Pentru fiecare procesor se pot numra evenimentele de calcul.
* tietur a e"ecuiei este un vector @,(@8$ A$ @n/#) de ntre.i pozitivi. Pentru fiecare tietur se poate construi o mulime de stri ale procesoarelor starea procesorului pi este starea sa
din imediat dup evenimentul de calcul numrul @i din pi.
5ietura @ a lui este consistent dac pentru i$'
evenimentul de calcul numrul @i9# al lui pi n nu se nt?mpl naintea evenimentului @' al procesorului p' din (evenimentul numrul @' din al procesorului p' nu depinde de nici o
aciune luat de alt procesor dup tietur).
Vom presupune c fiecare canal livreaz mesa'ele ntr/o ordine !H!*.
Determinarea unei tieturi consistente maximale
Pentru tietur @ i e"ecuie $ o tietur consistent @#6@.
* tietur consistent maimal ce prece!e " este o tietur consistent @#6@ a.. @1 tietur @#6@16@$ @1 nu este consistent.
&e poate demonstra c tietura consistent ma"imal ce precede @ este unic.
Presupunem c avem un al.oritm 0 ce se e"ecut pe un sistem distribuit asincron de tip MP. 4a un moment dat procesor primete o aceeai tietur @. !iecare procesor trebuie s
calculeze componenta sa din tietura ma"imal ce precede @.
(;u discutm modul n care se primete tieturaC problema este real i apare n restaurarea unui sistem distribuit dup o cdere).
Pentru realizarea acestui tas@ procesoarele pot memora e"tra/informaie$ pot tampila mesa'ele lui 0 cu e"tra/informaii i pot trimite mesa'e adiionale.
+escriem o metod ce necesit suplimentarea mesa'elor lui 0 cu *(n) informaii. Hdeea e foarte simpl fiecare mesa' al lui 0 este tampilat cu V-. Pentru aceasta
/fiecare procesor pi are un tablou (nemr.init) storei a..storei<l= pstreaz ceasul vectorial V- asociat evenimentelor de calcul numrul l al lui pi.
/atunci c?nd pi primete intrarea @$ ncepe s parcur. napoi storei$ ncep?nd cu storei<@i= p?n .sete primul indice l$ cu proprietatea c storei<l=6@.
/rspunsul calculat de pi este l.
Determinarea unui instantaneu istribuit
n timp ce procesoarele e"ecut un al.oritm 0$ fiecare procesor dintr/o anumit mulime & primete indicaia c procesoarele trebuie s nceap calculul unei tieturi consistente
care include starea cel puin a unui procesor din & la momentul n care a primit indicaia de start. (* astfel de tietur se numete instantaneu distribuit).
Prezentm un al.oritm pentru rezolvarea acestei probleme prin trimiterea unor mesa'e adiionale numite mar@ere.
-um problema este obinerea unui instantaneu pentru e"ecuia al.oritmului 0$ primirea mesa'elor mar@er nu trebuie s influeneze calculul tieturii.
fiecare procesor pi are o variabil local ansi$ iniial nedefinit care la sf?rit pstreaz rspunsul (intrarea lui pi n tietura consistent dorit).
la primirea unui mesa' mar@er de la un vecin$ sau la primirea indicaiei s nceap al.oritmul$ pi e"ecut dac ansi nu a fost de'a setat atunci atribuie lui ansi numrul mesa'elor
primite de la al.oritmul 0 p?n n acel moment i trimite un mesa' mar@er tuturor vecinilor (inundare).
!l"oritm e eterminare a unui instantaneu istribuit
(codul pentru procesorul pi)
Hniial$ ans, i num,8.
4a primirea unui mesa' al al.oritmului 0
# num,num9#
% e"ecut aciunile al.oritmului 0
4a primirea unui mesa' mar@er sau a indicaiei s ia un instantaneu
( if ans, t)en
I ans,num
J send mar@er tuturor vecinilor.
Teorem 0l.oritmul de mai sus calculeaz un instantaneu distribuit folosind *(m) mesa'e adiionale.
+em. !ie @ rspunsul calculat de al.oritm. !ie pf primul procesor care primete o indicaie de start. -lar$ @f va avea valoarea lui numf din momentul primirii indicaiei de start.
Presupunem c pi i p' a.. evenimentul de calcul @' al lui p' (n al.oritmul 0) depinde de evenimentul @i9# al lui pi (n al.oritmul 0).
E"ist un ir de mesa'e ale al.oritmului 0 de la pi la p' m#$ m%$ A$ ml a.. m# e trimis de pi lui pi% dup tietura din pi$ m% este trimis de pi% lui pi( dup primirea lui m# .a.m.d. iar ml
este trimis de pil lui p' dup primirea lui ml/# i primit de p' nainte de tietura din p'. E"ist deci un mesa' m) care e trimis de pi) dup tietur i primit de pi)9# naintea tieturii. +ar cum
pi) este trimis dup tietur pi) a trimis de'a mesa'ul mar@er lui pi)9# naintea trimiterii lui m). -um canalele sunt or.anizate !H!* i mesa'ul mar@er este primit de pi)9# naintea lui m) i
deci m) n/a fost primit naintea tieturii.
*bservatie -ei doi al.oritmi i.nor coninutul canalelor (stivelor de mesa'e). * soluie e s presupunem c strile locale ale procesoarelor ptreaz ce mesa'e au fost primite i
trimise. 0tunci informaia despre canale se obine din colecia strilor procesoarelor. &oluia este nepractic datorit volumului de memorie local necesar.
* alt soluie se obine dup cum urmeaz
0l.oritm de determinare a tieturilor ma"imale consistente n tabloul store fiecare component conine i numrul de mesa'e primite de procesor de la vecinii si pe l?n. V-.
0tunci c?nd trebuie calculat o tietur ma"imal consistent$ fiecare procesor pi parcur.e tabloul su store nainte$ ncep?nd cu prima component$ i simuleaz o 2reluare3 a
mesa'elor pe care le/ar fi trimis. Procesul se termin cu ultima intrare$ l$ din storei a..V- din storei<l= este @ (tietura dat). -onsiderm un vecin p' oarecare al lui pi. n storei<l= se
cunoate numrul " al mesa'elor primite de pi de la p'. -?nd pi a terminat 2reluarea3 sa$ trimite " lui p'. -?nd p' primete mesa'ul de la pi$ ateapt p?n c?nd i calculeaz propria sa
reluare. 0tunci p' calculeaz starea canalului de la p' la pi pentru tietura consistent ca fiind sufi"ul$ ncep?nd cu al ("9#)/lea al secvenei de mesa'e care este .enerat de 2reluare3 pe
care el le/a trimis lui pi.
0l.oritmul de determinare a unui instantaneu distribuit se modific a.. fiecare procesor pi nre.istreaz irul de mesa'e primite de la fiecare p'$ de la momentul c?nd pi i/a determinat
rspunsul ansi p?n n momentul n care pi primete un mesa' mar@er de la p'. &e obine astfel i informaie referitoare la mesa'ele n tranzit n confi.uraia care corespunde
instantaneului distribuit.
#roblema sesiunii.
:elaia

captureaz dependenele din interiorul sistemului$ dar nu surprinde interaciunea cu mediul ncon'urtor.
Problema sesiunii pe care o descriem n continuare poate fi uor rezolvat n sisteme sincrone$ ns necesit e"tra/timp considerabil pentru sisteme asincrone$ datorit necesitii
comunicrii e"plicite.
* sesiune este o perioad minim de timp n care fiecare procesor e"ecut o aciune special cel puin o dat. Problema sesiunii cere ca pentru un s dat s se .aranteze e"ecuia a cel
puin s sesiuni.
Mai precis
/fiecare procesor pi are o variabil ntrea. &0i.
/n timpul e"ecuiei fiecare procesor pi incrementeaz &0i la anumite evenimente de calcul (incrementarea lui &0 reprezint 2aciunea special3 menionat mai sus).
/orice e"ecuie se partiioneaz n sesiuni dis'uncte$ unde o sesiune este un fra.ment de e"ecuie n care orice procesor i incrementeaz variabila &0 cel puin o dat.
Problema cere s se construiasc un al.oritm care pentru un s dat s .aranteze c n orice e"ecuie admisibil
/e"ist cel puin s sesiuni
/nici un procesor nu/i incrementeaz variabila &0 de o infinitate de ori (procesoarele se vor opri odat i odat n e"ecuia aciunii speciale).
5impul de e"ecuie este timpul p?n la ultima incrementare a lui &0 (folosind conveniile standard de la msurarea timpului n sisteme asincrone).
Pentru sistemele sincrone al.oritmul este banal fiecare procesor este lsat s e"ecute s aciuni speciale. n fiecare rund avem o sesiune i deci timpul este cel mult s.
n sistemele asincrone timpul de rezolvare a problemei depinde de diametrul reelei de comunicaie.
Teorem !ie 0 un al.oritm pentru problema s/sesiunii ntr/un sistem distribuit sincron de tip memorie parta'at cu reeaua de comunicaie av?nd diametrul +. 0tunci -5 a lui 0 este K
(s/#)+.
+em. Presupunem$ prin reducere la absurd$ c e"ista un al.oritm 0 cu -5( s/#)+.
!ie o e"ecuie admisibil a lui 0 care este sincron ( const dintr/o serie de runde$ fiecare rund conin?nd un eveniment de livrare pentru fiecare mesa' n tranzit$ urmat de un pas
de calcul al fiecrui procesor).
!ie planificarea lui unde se termin la sf?ritul rundei conin?nd ultima aciune special. +eci nu are aciuni speciale (iar const din cel mult (s/#)+ runde$ din ipoteza
asupra al.oritmului 0).
Hdeea demonstraiei Vom nlocui cu un amestec cauzal al lui a.. s se realizeze mai puin de s sesiuni i totui procesorul s nu distin. aceast situaie de cea ori.inal i deci ele
vor opri e"ecuia aciunilor speciale prematur. Hntuitiv$ aceasta se nt?mpl ntruc?t nu/i timp suficient pentru ca informaia referitoare la ndeplinirea sesiunilor s circule prin toat
reeaua.
Lema 1 !ie un subir conti.uu al lui const?nd din cel mult " runde complete ("/ntre. pozitiv). !ie - confi.uraia ce precede imediat primul eveniment al lui n e"ecuia
.-onsiderm dou procesoare oarecare pi i p'. +ac dist(pi$ p')K" (n reeaua de comunicaie) atunci e"ist un ir de evenimente 1,
#

%
numit split($ '$ i) a..
/
#
este pi/free (nu are evenimente referitoare la pi)
/
%
este p'/free
/e"ec(-$1) este un se.ment de e"ecuie similar lui e"ec(-$ ).
+em. !ie i primul eveniment al lui pi n i ' ultimul eveniment al lui p' n (+ac este pi/free
#
, i
%
vidC +ac este p'/free atunci
%
, i
#
vid). 0rtm c (i

') (nici un
eveniment al lui p' n timpul lui nu depinde de vreun eveniment al lui pi n timpul lui ). +ac ar e"ista o astfel de dependen$ ar e"ista un ir de mesa'e de la i la ' n . ;umrul
rundelor necesare pentru acest lan ar fi cel puin dist(pi$ p')9#$ din construcia lui (ntr/o rund nu e"ist dou evenimente care s se influeneze cauzal). +ar acest numr de runde
este cel puin "9#$ contradicie cu ale.erea lui .
!ie : restricia relaiei

la evenimentele din la care adu.m perec)ea ('$ i) ' trebuie s apar naintea lui i.
: este o relaie de ordine pe mulimea evenimentelor din .
!ie 1 o ordine total a evenimentelor din care este consistent cu :. -um 1 e consistent cu restricia ca i s apar dup ' urmeaz c 1,
#

%
unde
#
este pi/free i
%
este p'/free.
ntruc?t 1 este un amestec cauzal al lui rezulta ca e"ec(-$ 1) este un fra.ment de e"ecuie similar lui e"ec(-$ ).
Partiionm ,#As/# $ n care fiecare i const din cel mult + runde (dac n/ar fi posibil$ atunci numrul de runde din ar fi mai mare de (s/#)+$ n contradicie cu presupunerea
asupra timpului de e"ecuie al lui 0).
0le.em p8 i p# a.. dist(p8$ p#),+.
-onsiderm 1i, # 8
) # $ 8 $ (
) 8 $ # $ (

s i
par este i !aca split
impar este i !aca split
i
i

.
Lema 2. !ie -8 confi.uraia iniial a lui . 0tunci e"ec(-8$ 1#A1s/#) este o e"ecuie a lui 0 care e similar lui e"ec(-8$).
+em. &e arat prin inducie dup i c e"ec(-8$1# A 1i) este o e"ecuie a lui 0 care este similar lui e"ec(-8$ # A i) 8is/#. n pasul inductiv se aplic lema precedent.
:ezult c 1,e"ec(-8$ 1# A 1s/# ) e o e"ecuie admisibil a lui 0.
0rtm c e"ist prea puine sesiuni n 1$ contrazic?nd ipoteza de corectitudine a lui 0.
&esiunea # nu se poate termina naintea primei pri a lui 1# ntruc?t p8 nu face nici un pas n prima parte a lui 1#. &esiunea % nu se poate termina naintea prii a HH/
a
a lui 1%$ cci p#
nu face nici un pas dup terminarea sesiunii # p?n n a doua parte a lui 1%. n acest fel obinem c sesiunea s/# nu se poate termina p?n la a doua 'umtate a seciunii 1s/#. +ar ultima
parte a lui 1s/# nu conine o sesiune complet ntruc?t sau p8 sau p# nu apare n eaF
-um n nu se e"ecut nici o aciune special$ toate sesiunile trebuie incluse n e"ec(-8$ 1# A 1s/#) i prin urmare 1 conine cel mult s/# sesiuni.
$incronizarea ceasurilor.
Pentru studiul comple"itii timp a sistemelor distribuite asincrone s/a introdus noiunea de t/e"ecutie (timed e"ecution). !iecare eveniment are asociat un timp de apariie (timpul
real) care nu este accesibil procesoarelor.
Modele mai puternice ale sistemelor distribuite presupun c procesoarele au acces la informaia referitoare la timp prin intermediul ceasurilor har! acestea ofer apro"imaii ale
timpilor reali.
Modelul formal al sistemelor distribuite cu ceasuri )ard
ntr/o t/e"ecutie$ se asociaz fiecrui procesor pi o funcie L-iRR. 0tunci c?nd pi e"ecut un pas de calcul la timpul real t$ L-i(t) e disponibil ca intrare n funcia de tranziie a lui
pi. 0ceast funcie de tranziie nu poate modifica L-i.
Vom considera c i L-i(t),t9ci (ceasul )ard al procesorului pi msoar fr abateri timpul trecut de la un eveniment la altul).
Pentru fiecare t/e"ecutie se poate asocia starea iniial i irul de evenimente (de calcul i de livrare) asociate unui procesor vieG(pi). Putem proceda i invers$ din cele n vieG/uri s
construim o e"ecuie.
Definiie: vie#(pi) ntr/un model cu ceasuri )ard const dintr/o stare iniial a lui pi$ un ir de evenimente (de calcul sau de livrare) ce apar n pi i c?te o valoare a ceasului )ard
asociat fiecrui eveniment. Mirul valorilor ceasurilor )ard este cresctor i dac irul de evenimente este infinit$ atunci irul valorilor ceasurilor )ard este nemr.init.
Definiie: t/vieG(pi) ntr/un model cu ceasuri )ard este un vieG(pi) mpreun cu o valoare real asociat fiecrui eveniment. 0ceste valori trebuie s fie consistente cu ceasurile )ard
satisfc?nd L-i(t),t9ci.
* mulime de n t/vieG/uri i i, # $ 8 n pot fi reunite ntr/o t/e"ec astfel
-onfi.uraia iniial se obine consider?nd strile iniiale din i. &e consider apoi un ir de evenimente prin interleavin.ul evenimentelor din i$ consistent cu timpii reali (dac e"ist
mai multe evenimente la un moment t se respect ordinea impus de evenimentele de livrare$ dac nu mai e"ist alt criteriu de ordonare se folosesc indicii procesoarelor). 0plic?nd
acest ir de evenimente strii iniiale se obine o t/e"ecuie. :ezultatul este mer.e(8$ A$ n/#). 0ceasta este o e"ecuie dac t/vieG/urile sunt 2consistente3.
Definiie: !ie o t/e"ec cu ceasuri )ard i fie

un vector real cu n componente. +efinim s)ift( $

) ca fiind mer.e(8$ A$ n/#) unde i este t/vieG/ul obinut adu.?nd "i la


timpul real asociat cu fiecare eveniment din i.
Lema !ie o t/e"ec cu ceasuri )ard L-i 8 i n/# i

un vector real .
Hn s)ift($

)
(a)L-1i (ceasul )ard asociat lui pi) este L-i/"i 8 i n/#.
(b)mesa' de la pi la p' are nt?rzierea /"i9"' unde este nt?rzierea mesa'ului din i$'D8$ A$ n/#E.
#roblema sincronizrii ceasurilor.
!iecare procesor are o component special de stare aji pe care o poate manipula. $easul a%ustat al lui pi este funcie de L-i i variabila ad'i.
n procesul de sincronizare a ceasurilor$ pi modific valoarea lui ad'i i deci sc)imb valoarea ceasului a'ustat.+ac ceasurile )ard sunt fr abateri$ atunci 0-i(t),L-i(t)9ad'i(t) unde
ad'i(t) este valoarea lui ad'i n confi.uraia imediat dinaintea ultimului eveniment a crui apariie n timp este mai mare dec?t t. +ac ceasurile )ard sunt fr abateri$ odat atins
sincronizarea nu mai este nevoie de nici o aciune ulterioar.
0tin.erea /sincronizrii ceasurilor n t/e"ec admisibil tf timp real a.. al.oritmul se termin la momentul t f i pi$ p' t tf 0-i(t)/0-'(t) .
se numete s"e#.(distorsiune$ perturbaie)
Vom presupune c d$u d u K 8 a.. n t/e"ec admisibil mesa' are nt?rzierea n intervalul <d/u$d=.
(pi trimite un mesa' m lui p' la momentul real t$ atunci trebuie s apar un eveniment de livrare a lui m urmat de un pas de calcul al lui p' nu mai t?rziu de t9d i nu mai devreme de t9d/
u).
Vom presupune c reeaua de comunicare este complet (pentru simplificarea e"punerii)
!l"oritm e sincronizare a ceasurilor pentru n procesoare
(cod pentru pi $ 8 i n/#)
la primul pas de calcul
# trimite L- tuturor procesoarelor
la primirea mesa'ului 5 de la p'
% diff<'=,5 9d /uN%/L-
( if (s/au primit mesa'e de la toate procesoarele) t)en
I ad', media aritmetic a componentelor vectorului diff
&e poate demonstra
Teorem 0l.oritmul atin.e u(1&1'n)/sincronizarea ceasurilor.
*bservaie &/a dovedit c orice al.oritm care atin.e O/sincronizarea satisface ( u(1&1'n)$ ceea ce arat c al.oritmul dat este optimal.
Consens tolerant la efectri
1% $isteme sincrone cu ceri
-el mai simplu scenariu de procesare distribuit tolerant la defectri sisteme distribuite sincrone n care procesoarele PcadP $ ncet?nd s opereze.
Vom considera numai sisteme distribuite sincrone cu topolo.ia .raf complet. -analele vor fi considerate ca fiind fr defecte$ deci toate mesa'ele trimise vor fi livrate.
&istemul se numete f&rezilient dac numrul ma"im de procesoare care se pot defecta este f.
+efiniia unui e"ecuii trebuie modificat pentru un sistem f/rezilent. n sistem e"ist o mulime ! Dp8$ ..........pn/#E cu f ) $ necunoscut$ a procesoarelor defecte.
!iecare rund care conine e"act un eveniment de calcul pentru fiecare procesor care nu/i din ! i cel mult un eveniment de calcul pentru fiecare eveniment din !.
n plus$ dac un procesor din ! nu are un eveniment de calcul ntr/o rund$ atunci nu va mai avea n nici o rund care urmeaz. +e asemenea se presupune c ntr/o rund n
care un procesor cade$ vor fi livrate doar o submulime arbitrar dintre mesa'ele pe care le trimite. +ac am avea o cdere curat / toate mesa'ele trimise sunt livrate sau nici un mesa'
nu este livrat/ atunci problemele create se rezolv mult mai simplu.
#roblema consensului
!iecare procesor pi are o component a strii sale "i (intrarea) i o component Qi (ieirea sau decizia). Hniial "i are o valoare dintr/o mulime total ordonat iar Qi este
nedefinit. *rice asi.nare asupra lui Qi este ireversibil. * soluie la problema consensului trebuie s .aranteze
Terminarea n e"ecuie admisibil$ Qi va primi o valoare pentru fiecare procesor nedefect pi.
!"reement n e"ecutie dac Qi i Q' au fost asi.nate atunci Qi , Q' pentru procesoare nedefecte pi i p'. (procesoarele nedefecte nu decid pe valori conflictuale)
&aliitate n e"ecuie dac o valoare v a.. "i , v pt pi i dac Qi este asi.nat pentru un procesor nedefect pi$ atunci Qi ,v (dac toate procesoarele au aceeai intrare$ atunci
sin.ura valoare pe care ele vor decide este intrarea comun).
'n al"oritm simplu
!iec procesor ii menine o mulime a valorilor pe care el le tie c n sistem. Hniial aceast mulime este format doar din intrarea sa. n fiecare din cele f9# runde pe care
le e"ecut sistemul$ fiecare procesor i actualiz mulimea sa cu mulimile primite de la acel procesor i difuzeaz orice nou modificare. n acest moment$ procesoarele decid pe
valorile minime din multimea fiecruia.
!l"oritm e consens (coul pentru pi)
Hniial V, D"E NN V conine intratea lui pi
runda @ # @ f9#
#. send DvC vV$ v n/a fost de'a trimisE tuturor procesoarelor
%. receive &' de la p' 8 ' n/# ' i
(.

#
#


=
=
n
%
%
* + +
I. if @ , f9# t)en Q, min(V)
5erminarea este asi.urat deorece al.oritmul prevede e"act f9# runde$ ultima asi.n?nd o valoare a lui Q.
Validitatea este asi.urat$ deoarece aceast valoare este o intrare a unui procesor.
-ondiia de a.reement este satisfcut aa cum rezult din urmtoarea lem.
Lem n orice e"ecuie$ la sf?ritul rundei f9#$ Vi , V'$ dou procesoare nedefecte pi i p'.
Demonstraie* -onsiderm dou proceasoare nedefecte oarecare pi i p'.
+emonstrm c dac " Vi la sf?ritul rundei f9# atunci " V' la sf?ritul rundei f9#. !ie r prima rund la care " este adu.at la un V@ pentru un procesor nedefect p@ (r ,8 dac "
era valoarea iniial a lui p@).
+ac r f$ n runda r9# ( f9#)$ " va fi trimis lui p' care l adau. la V' $ dac nu era de'a prezent.
Presupunem$ deci$ c r, f9# i c p@ primete " pentru prima oar n runda f9#. E"ist un ir de f9# procesoare
# #
$
+ f
i i
p p
a..
#
i
p trimite " lui
%
i
p n runda #$
%
i
p lui
( i
p n runda %$ ......... $
f
i
p
lui
# + f
i
p
n runda f i
# + f
i
p
lui p@ n runda f9#. -um fiecare procesor trimite o valoare particular o sin.ur dat$ acestea sunt distincte.
+eci avem o mulime de f9# procesoare care va conine si.ur unul nedefect$ care deci va adu.a " la mulimea sa ntr/o rund f 6 r contrazic?nd ale.erea lui r.
Teorem* 0l.oritmul precedent rezolv problema consensului n prezena a f cderi n f9# runde.
+ mar"ine inferioar asupra numrului e rune
!ie o e"ecuie admisibil a unui al.oritm de consens i fie dec() decizia unui procesor oarecare nedefect ( care din condiia de a.reement este unic definit).
Hdeea obinerii mar.inii inferioare dac procesoarele decid prea devreme ele nu pot distin.e o e"ecuie admisibil n care ele iau decizii diferite.
Vom presupune f n R %.
Definiie* +ou e"ecuii # i % sunt similare n raport cu pi$ notat
% #
#
S p
p

$
dac # T pi , % T pi.
Evident$ dac
%
p
#
i
S
rezult c pi decide pe aceeasi valoare n ambele e"ecuii. +in condiiile de a.reement toate procesoarele nedefecte vor decide pe o aceeasi
valoare.
+eci$

% #
S
i
p
dec(#) , dec(%).
-onsiderm nc)iderea tranzitiv a relaiei S notat
# % #$...............$ @9# i pi#$..............$pi@ a..
# , #
i
p
S
%
i
p
S
$...$
i
p
S
@9# , %.
Evident$ # % dec(# ) dec (% ).
Vom presupune c procesor nedefect trimite mesa'e la toate celelalte n fiecare rund (dac nu/i aa se pot trimite mesa'e fictive).
-onsiderm mai nt?i cazul parcticular c?nd f,#.
Lema. +ac n ($ nu e"ist al.oritm care s rezolve problema consensului n mai puin de dou runde n prezena unei sin.ure cderi.
+emonstratie
Presupunem c un al.oritm n care toate procesele nedefecte decid dup runda #$ pentru mulimea intrrilor D8$#E.
!ie
i

e"ecuia admisibil a al.oritmului n care procesoarele p8 p?n la pi/# au valorile iniiale # i celelalte 8 (8 i n) (n
o
procesoarele au toate intrrile 8 iar
n
au
toate intrrile #).
+ac artm c ( ) ( ) # 8 # 8
8 #
= = =
+ n i i
!ec !ec n i $ contradicie.
-onsider?nd
i
%
e"cuia n care procesoarele ncep cu aceeai valoare iniial ca i
i
$ dar care n runda # se PdefecteazP netrimi?nd mesa'e la ultimele ' procesoare
% n n
p p

$
#
$ 8 ' n/# (e"cluz?ndu/se eventual pe el nsui).
Evident
i i
=
8
. Pentru fiecare 8 ' n/%$ cum n K ($ un procesor nedefect p@ diferit de procesorul care primete mesa' n
i
%
dar nu n
i
% # +
. +eci
i
%
p
i
%
"
# +

n
i
n #
pi nu trimite mesa'e. +ac sc)imbm intrarea lui pi din 8 n # rezult o e"ecuie admisibil
i
8
. Pentru procesor p@ pi
i
p
i
n
"
8 #

pentru c am modificat
intrarea unui procesor care nu trimite mesa'e.
Pentru # $ 8 = n % considerm
i
%
e"ecuia admisibil n care p8$....... pi ncep cu # restul cu 8 i n runda # pi trimite mesa'ele sale la primele ' cele mai mici
procesoare$ e"cluz?ndu/se pe el nsui dac este cazul. -a mai nainte ' 8 ' n/%$ cum n ($ un procesor nedefect n p@ altul dec?t procesorul ce primete mesa'ul lui pi
n
i
% # +
dar nu n
i
%
$ deci
i
%
p
i
%
"
# +

. Evident
#
#
+

=
i i
n
i deci am demonstrat c
# +

i i

Cazul "eneral%
Presupunem c e"ist un al.oritm care rezolv problema consensului n cel mult f runde # f n/%.
7n pattern al mesa'elor specific pentru fiecare rund i fiecare procesor care din mesa'ele trimise de el vor fi livrate altui procesor n acea rund. -lar$ patternul mesa'elor
descrie patternul cderilor.
7n procesor este nedefect n runda r a unei e"ecuii dac toate mesa'ele pe care el le/a trimis n runda r sunt livrate.
* e"ecuie admisibil este r & failure,free (r/ff) dac nici un procesor nu este defect ntr/o rund @. n particular$ o e"ecuie admisibil este failure/free dac este #/ff.
!ie o e"ecuie admisibil r/ff cu confi.uraia iniial H i patternul cderilor M i presupunem c procesorul pi este nedefect n runda r. ;otm cu cras) ( $ pi$ v) e"ecuia
admisibil cu confi.uraia iniial H i patternul mesa'elor MU unde MU este e.al cu M cu e"cepia faptului c pi nu va mai transmite nici un mesa' ncep?nd cu runda rC dup runda r
este posibil ca pi s se comporte diferit n cele % e"ecuii.
Lem% Pentru r$ # r f$ dac este r/ff cu cel mult o defeciune n fiecare rund i procesorul pi este nedefect n $ atunci
cras) ($ pi$ r).
Demonstraie* Hnducie dup f/r.
r , f. !ie r/ff e"ecuie i presupunem c pi e nedefect n . n runda f e"ist cel puin ( procesoare nedefecte . (n fiecare rund se defecteaz cel mult un procesor$ n runda f nu
avem procesoare defecte deci avem cel mult f/# procesoare defecte iar f n/%).
Procedm ca n demonstraia precedent i construim un ir de e"ecuii elimin?nd c?te un mesa' trimis de pi n runda f (e"ecuia
i
8
p?n la
#
8
n
). -um mcar dou
procesoare n afara lui pi sunt nedefecte n runda f i numai un procesor are vieG/urile diferite n fiecare perec)e de e"ecuii consecutive$ cel puin un procesor nedefect are acelai
vieG n fiecare perec)e de e"ecuii consecutive. +eci avem
p

pentru fiecare din e"ecuiile consecutive. 7ltima e"ecuie din acest ir este o e"ecuie n care p i nu trimite nici un
mesa' n runda f$ deci cras) ($pi $ f) .
n pasul inductiv$ presupunem c lema are loc pentru runda r9#$ # r f/# i demonstrm c are loc pentru r.
!ie o e"ecuie r/ff cu cel mult o defeciune n fiecare rund i presupunem c pi este nedefect n runda r.
Evident este i (r9#)/ff cu cel mult o defeciune n fiecare rund i deci aplic?nd ipoteza inductiv lui pi obinem cras)($pi $ v9#) .
!ie 8 o e"ecuie care este e"act cras)($pi $ r9#) cu e"cepia faptului c pi cade la sf?ritul rundei r dup ce trimite toate cele n/# mesa'e$ n loc s cad la nceputul rundei
r9#.
+ar 8
%
p

cras)($pi $ r9#) pentu procesor nedefect p' . &e observ c 8 este (r9#)/ff. n plus 8 are cel mult o defeciune pe rund ntruc?t este r/ff i n runda r n 8
se adau. o defeciune prin construcie.
Eliminm mesa'ele lui pi din runda r unul c?te unul astfel pentru ' # ' n/#$ fie ' e"ecuia cu aceeasi confi.uraie iniial ca 8 i acelasi pattern al mesa'elor ca 8$ cu
e"cepia faptului c pi nu trimite n runda r mesa'e ultimelor ' procesoare$ cu e"cepia sa$ dac este necesar (i desi.ur nu mai trimite mesa'e n viitor). !iecare ' este (r9#)/ff i are cel
mult o cdere pe rund.
+ac demonstrm c '/# ' # ' n/# obinem n/# i cum n/# , cras)($pi $ v) lema este demonstrat.
!ie p) procesorul care prin mesa'ul lui pi din runda r n '/# dar nu n ' ( ) , n/#/' dac ultimile ' procesoare includ pi $ altfel ) , n/%/').
-azul #. p) defect n . -um este r/ff$ p) cade ntr/o rund @6 r i deci cade i n '/# i n ' . -lar '/#
l
p

' pentru un procesor nedefect pl ( pentru c r6f n/% i cel


mult o cdere pe rund). (;ici un procesor nu poate spune dac pi trimite lui p) un mesa' n runda r$ pentru c p) era de'a mort).
-azul %. p) nu este defect n .
-um '/# este (r9#)/ff i are cel mult o cdere pe rund$ aplicand ipoteza inductiv$ rezult cras)('/# $ p) $ r9#) '/# .
&imilar cras) (' $ p) $ r9# ) ' . -um sin.ura diferen dintre cras)('/# $ p) $ r9#) i cras) (' $ p) $ r9# ) este c mesa'ul lui pi ctre p) din runda r este prezent n prima i nu este
prezent n a doua$ iar p) nu va trimite mesa'e mai departe$ rezult c cras)('/# $ p) $ r9#) cras) (' $ p) $ r9# ).
Teorem* ;u e"ist al.oritm care s rezolve problema consensului n mai puin de f9# runde n prezena a f cderi dac n f9%.
Demonstraie* Presupunem prin reducere la absurd c un al.oritm care rezolv problema n mai puin de f9# runde.
-onsiderm o e"ecuie admisibil fr cderi n care toate procesoarele au intrarea 8.
!ie
i
(8 i n) e"ecuia admisibil a al.oritmului fr cderi n care procesoarele p8 p?n la pi /# ncep cu # i celelalte ncep cu 8. +eci
8
are toate intrrile 8 iar
n
are
toate intrrile #. +emonstrm c
8

#
...
n
i cum dec(
8
) , 8 (datorit condiiei de validitate) obinem c dec(
n
) , 8 contrazicand condiia de validitate pentru
n
.

i
este fr cderi deci are cel mult o cdere pe rund. +eci
i
cras) (
i
$pi $ #) i
i9#
cras) (
i9#
$pi $ #). -um sin.ura diferen dintre cras) (
i
$pi $ #) i cras) (
i9#
$pi $ #) este
intrarea lui pi i cum pi nu trimite mesa'e
cras) (
i
$pi $ #) cras) (
i9#
$pi $ #).
2% $isteme sincrone cu ceri bizantine
+efeciunile sunt PrutcioaseP fa de cele PcurateP ale modelului precedent.
+escrierea metaforic a problemei Mai multe divizii ale armatei Vizantine sunt campate l?n. cetatea inamicului. !iecare divizie este comandat de un .eneral. Weneralii
comunic ntre ei doar prin mesa.eri (care ii ndeplinesc ireproabil sarcinile). Weneralii trebuie s decid asupra unui plan comun de aciune$ adic s decid dac s atace sau nu
cetatea (a.reement) i dac .eneralii sunt toi unanimi n opinia lor iniial atunci aceasta trebuie s fie decizia pe care o vor lua.
Problema este c unii dintre .enerali pot fi trdtori (doar sunt n armata bizantin FF) i ei pot ncerca s/i mpiedice pe .eneralii loiali s fie de acord. Pentru aceasta ei
trimit mesa'e diferite la .enerali diferii$ retransmit n mod eronat ce/au auzit de la alii sau c)iar pot conspira i forma o coaliie.
Modelul formal &istem distribuit sincron f / rezilient.
n orice e"ecuie o submulime de cel mult f procesoare care se pot defecta (procesoarele defecte$ trdtorii). ntr/un pas de calcul al unui procesor defect nu se impune
nici o restricie asupra noii stri sau asupra mesa'elor transmise (n particular se poate comporta ca n modelul precedent). &istemul se comport ca i n lipsa cderilor la fiecare rund
fiecare procesor e"ecut un pas de calcul i orice mesa' transmis n acea rund este livrat pentru urmtoarea rund.
Problema consensului e"act acelai enun.
&pre deosebire de modelul precedent$ condiia de valabilitate nu este ec)ivalent cu a cere ca decizia unui procesor oarecare nedefect s fie intrarea unui anumit procesor.
+ mar"ine superioar pentru numrul procesoarelor efecte
Lema* ntr/un sistem cu ( procesoare n care unul poate fi bizantin nu e"ist un al.oritm care s rezolve problema consensului.
Demonstraie* Presupunem c e"ist un astfel de al.oritm ntr/un sistem cu ( procesoare p8$ p# $ p% conectate printr/un .raf complet cu trei v?rfuri.
;otm cu 0$ V$ - pro.ramele locale ale lui p8$ p# $ p% respectiv.
-onsiderm un inel sincron cu X procesoare n care p8 i p( au pro.ramul local 0$ p# i pI au pro.ramul local V i p% i pJ au pro.ramul local -.
+esi.ur$ mesa'ele dintr/un pro.ram local vor fi transmise procesorului vecin cu acelai pro.ram cu cel din triun.)i. (p8$ nu trimite lui p% ci lui pJ $ p($ nu trimite lui p# ci lui pI etc. ).
-onsider?nd o e"ecuie particular a acestui al.oritm pe inel$ n care p8$ p# $ p% au intrarea # iar p($ pI $ pJ au intrarea 8.
:evenim la problema nostr.
-onsideram # e"ecuia al.oritmului n
D p8$ p# $ p% E n care toate procesoarele pornesc cu # i procesorul p% este defect. Mesa'ele pe care le trimite p% le considerm ca fiind
p% p8 mesa'ele trimise n de pJ lui p8
p% p8 mesa'ele trimise n de p% lui p#
+in condiia de validitate$ p8 i p# vor decide pe # n #.
-onsiderm % e"ecuia al.oritmului n D p8$ p# $ p% E n care toate procesoarele pornesc cu intrarea 8 i procesorul p8 este defect.
Mesa'ele pe care le trimite p8 le considerm ca fiind
p8 p# mesa'ele trimise n de p( lui pI
p8 p% mesa'ele trimise n de p8 lui pJ
+in condiia de validitate$ p# i p% decid pe 8 n %.
-onsiderm ( e"ecuia al.oritmului D p8$ p# $ p% E n care p8 pornete cu intrarea 8$ p# pornete cu intrarea #$ p% pornete cu intrarea 8 i defect este p#.
Mesa'ele pe care le trimite p# le considerm ca fiind
p# p% mesa'ele trimise n de pI pJ
p# p8 mesa'ele trimise n de p# p8
*bservm c
p8 are acelai vieG n # pe care l are i n
p8 are acelai vieG n pe care l are i n (
+eci (inductiv dup numrul de runde) #
8
p

( p8 decide # n (.
&imilar %
%
p

( p% decide 8 n (.
+ar acesta contravine condiiei de a.reement. -ontradicie.
P
I
V(8)
P
(
0(8)
P
J
-(8)
P
%
-(#)
P
#
V(#)
P
8
0(#)
Teorem. ntr/un sistem cu n procesoare dintre care f sunt bizantine nu e"ist un al.oritm care s rezolve problema consensului dac n (f.
Demonstraie. Presupunem$ prin reducere la absurd$ c e"ist un astfel de al.oritm.
Partiionm mulimea procesoarelor n P8$ P#$ P% fiecare conin?nd cel mult

(
n
procesoare.
-onsiderm un sistem cu trei procesoare {p8$ p#$ p%}. Pentru acest sistem descriem un al.oritm de consens care poate tolera o cdere bizantin (contrazic?nd teorema
precedent).
n al.oritm$ p8 simuleaz toate procesoarele din P8$ p# pe cele din P# i p% pe cele din P%.
+ac unul din procesoare n sistemul {p8$ p#$ p%} este defect cum f
n

(
rezult c n sistemul simulat cu n procesoare avem cel mult f procesoare defecte. 0l.oritmul
simulat trebuie s pstreze validitatea i condiia de a.reement din sistemul simulat i deci i n sistemul cu ( procesoare.
'n al"oritm exponential
Prezentm un al.oritm care n f 9# runde rezolv problema consensului n ipoteza c n (f9#. 5otui$ folosete mesa'e de dimensiune e"ponenial
0l.oritmul are dou etape
/ H se colecteaz informaia prin comunicare ntre procesoare
/ HH pe baza informaiei colectate$ fiecare procesor ia decizia sa.
Este convenabil s descriem informaia meninut de fiecare procesor cu a'utorul unor arbori etic)etai.
0rborele fiecrui procesor are proprietatea c oricare drum de la rdcin la frunze are f9% noduri (arborele are ad?ncimea f9#). !iecare nod este etic)etat cu iruri de nume
de procesoare astfel
/ rdcina are etic)eta cuv?ntul vid
/ nodul v cu etic)eta i# i% ...ir (de pe nivelul r9#C aflat la ad?ncimea r) are ca descendeni c?te un nod etic)etat i# i% ...ir i pentru oricare
i {8$ #$ ...$ n/#} Y {i# i% ...ir} (etic)etele au simboluri distincte).
Vom spune c nodul i# i% ...ir/# i de pe nivelul r corespunde procesorului i.
!aza H/a
n runda # fiecare procesor trimite valoarea sa tuturor procesoarelor (inclusiv lui nsuiC aceasta se simuleaz)
n runda % (fiecrui procesor i sunt livrate mesa'ele din runda precedent i procesoarele nedefecte memoreaz valoarea primit de la procesorul p' n nodul etic)etat ' de
pe nivelul #. +eci fiecare procesor nedefect are completat arborele
fiecare procesor trimite un mesa' format din nivelul % din arborele su celorlalte procesoare.
n runda ( (fiecare procesor a luat mesa'ul primit de la p' i valoarea memorata de p' n nodul i$ o memoreaz n nodul i' de pe nivelul (.
fiecare procesor trimite un mesa' format din nivelul ( din arborele su celorlalte procesoare.
n .eneral
n runda r fiecare procesor difuzeaz celorlalte nivelul r din arborele su.
-nd un procesor primete un mesa' de la p' cu valoarea din nodul arborelui lui p' etic)etat i# i% ...ir/# , "$ el memoreaz valoarea " n nodul
#
%
n
'
#'
%'
n'
"
#
"
%
"
n
#
%
n
i# i% ...ir ' din arborele su.
Hntuitiv pi memoreaz n i# ...ir ' valoarea Pp' spune c pir spune c
pir/# spune c .... c
#
i
p spune "P.
Vom nota aceast valoare treei (i#$ ...$ iv$ ') omiind indicile i c?nd nu este pericol de confuzie.
!aza H/a conine f9# runde$ c?nd se umple fiecare arbore al procesoarelor.
7rmeaz faza ,,-a%
Procesorul pi i calculeaz decizia sa aplic?nd fiecrui subarbore o funcie recursiv resolve. n arborele lui pi$ dac avem un subarbore etic)etat $ valoarea determinat de funcie o
notm resolvei (). (eventual omi?nd indicele).
+ecizia luat de pi va fi resolvei ( )(aplicarea funciei rdacinii arborelui)
( )
( )
( ) ( )


+
=

lui al descendent C
) # f l. are ( frunzZ. este etic)eta cu nodul dacZ
resolve ma%orit-
tree
resolve
*bservaie
#. dac n prima faz a al.oritmului un nod primete o valoare nele.itim sau nu primete o valoare (procesorul care ar fi trebuit s i/o trimit este defect) nodul memoreaz n
nodul corespunztor o valoare default v.
%. dac ma'oritQ nu e"ist funcia resolve ia valoarea v.
!i"m o e"ecuie admisibil a al.oritmului. & reamintim c dac un nod din arborele lui pi corespunde lui p' atunci valoarea memorat n tree() a fost primit ntr/un mesa' de la p'.
Lema 1. Pentru orice nod de forma U' unde p' este nedefect avem
resolvei () , tree' (U) $ pi nedefect.
Demonstraie Hnductiv dup ad?ncimea lui n arbore$ pornind din frunze.
frunz prin definiie resolvei() , treei()$ dar treei() memoreaz valoarea lui U pe care p' o trimite lui i n ultima rund. -um p' nu este defect acceast valoare este
tree'(U).
nod intern. -um arborele are f 9% nivele rdcina are n descendeni i la fiecare nivel numrul descendenilor scade cu # are cel puin n / f descendeni. -um n
(f9# .radul lui este %f 9#. Ma'oritQ aplicat descendenilor lui corespunde procesoarelor nedefecte. !ie @ un descendent al lui (care corespunde procesorului nedefect p@). +in
ipoteza inductiv$ resolvei(@) , tree@()$ p' nedefect tree@() , tree' (U) adic p' i spune corect lui p@ valoarea pe care p' a memorat/o n U.
+eci pi rezolv fiecare copil al lui corespunztor unui procesor nedefect ca fiind tree'(U) i deci resolvei() este e.al cu valoarea ma'oritar tree'(U).
0l.oritmul satisface condiia de validitate. Presupunem c toate procesoarele nedefecte pornesc cu aceasi valoare v iniial. +ecizia fiecrui procesor nedefect pi este resolvei()$ care
este valoarea ma'oritar din valorile rezolvate pentru descendenii rdcin. Pentru fiecare descendent ' cu p' nedefect$ lema precedent asi.ur c resolvei(') , tree'( ) ,v (p' nu este
defect). -um valoarea ma'oritar corespunde procesoarelor nedefecte pi decide pe v.
Pentru a demonstra condiia de a.reement considerm urmtoarea definiie
;odul este comun ntr/o e"ecuie dac toate procesoarele nedefecte calculeaz aceeai valoare n nodul
resolvei() , resolve'()$ pi$ p' nedefecte.
7n subarbore are frontier comun dac e"ist un nod comun pe oricare drum din rdcina subarborelui la frunzele sale.
Lema 2. !ie un nod. +ac subarborele cu rdcina n are frontier comun e comun.
Demonstraie Hnductiv dup nlimea lui .
+ac este frunz$ evident. n pasul inductiv$
presupunem c lema are loc pentru orice nod cu nlimea @ i fie cu nlimea @9#. Presupunem c nu este comun. -um subarborele cu rdcina n are frontier comun orice
subarbore cu rdcina n copiii lui are frontier comun$ i din ipoteza inductiv fiecare copil al lui este comun. +eci toate procesoarele rezolv aceeai valoare pentru toi copii lui
i prin urmare i pentru (pentru c se aplic ma'oritatea ).
:ezult c este comun.
;odurile de pe fiecare drum de la un copil al rdcinei la o frunz corespund la procesoare diferite (f9#)$ cel puin unul este nedefect i deci este comun conform lemei #. +eci$ lema %
asi.ur faptul c rdcina este comun$ adic are loc condiia a.reement.
Concluzie
Teorem. +ac n K (f$ e"ist un al.oritm pentru n procesoare care rezolv problema consensului n prezena a f cderi bizantine n f9# runde$ folosind mesa'e de dimensiune
e"ponenial.
+bser.aie M- , n
%
(f9#) (numrul mesa'elor trimise).
Mesa'ul cel mai lun. trimis conine n(n/#)...(n/(f9#)) , (n
f9%
) valori.
'n al" polinomial
+ac n K If se poate construi un al.oritm cu mesa'e de dimensiune constant care rezolv problema n %(f9#) runde
0l.oritmul are f9# faze$ fiecare faz cu % runde.
Pentru fiecare faz$ fiecare procesor are o decizie preferat (preferina sa)$ iniial$ aceasta fiind valoarea sa.
n prima rund a fiecrei faze toate procesoarele i trimit preferina lor tuturor celorlalte.
!ie
"
i
v valoarea ma'oritar n mulimea valorilor primite de un procesor pi la sf?ritul primei runde din faza @ (dac nu e"ist ma'oritate se folosete o valoare default v5).
n a doua rund a fiecrei faze @$ procesorul p@ / numit re.ele fazei / trimite valoarea sa ma'oritar
"
"
v celorlalte procesoare.
+ac un procesor pi primete K f
n
+
%
copii a lui
"
i
v (n prima rund a fazei) atunci el consider preferina sa pentru faza urmtoare ca fiind
"
i
v . 0ltfel$ ale.e drept
preferina sa pentru faza urmtoare ca fiind cea a re.elui
"
"
v (primit n runda %/a a fazei).
+up f9# runde procesorul decide pe preferina sa
!l"oritm polinomial e consens /n prezena cerilor bizantine
-odul pentru pi ( 8 # n i )
Hniial pref [i] , "pref ['] , v ' i
:unda %@/# # # + f " NN prima rund a fazei @
# send 6 pref [i] K tuturor procesoarelor
% receive 6 v' K de la p' i asi.neaz/l lui pref ['] 8 ' n/#$ 'i
( fie ma% valoarea ma'oritar din pref [8]$ ...$ pref [n/#] (v dac nu
e"ist)
I fie mult multiplicitatea lui ma'
:unda %@$ # @ f9# NN a doua rund a fazei @.
J if i,@ t)en send 6ma'K tuturor procesoarelor NN re.ele fazei
X receive 6@in./ma'K from p@ (v dac nu e"ist)
[ if mult K f
n
+
%
\ t)en pref <i= , ma'
] else pref <i= , @in./ma'
#8 if @, f9# t)en Q , pref <i= NN decide
Lema 1. +ac toate procesoarele nedefecte prefer v la nceputul fazei @$ atunci toate prefer v la sf?ritul fazei @$ @$ # @ f9#.
Demonstraie -um toate prefer v la nceputul fazei @ fiecare precesor primete cel puin n/f copii ale lui v (inclusiv pe a sa) n prima rund a fazei @. -um n K If n/f K
nN% 9 f C deci toate procesoarele prefer v la sf?ritul fazei @.
+in acest lem rezult imediat proprietatea de validitate dac toate procesoarele nedefecte ncep cu aceeai valoare de intrare v atunci ele vor prefera v n toate fazeleC
deci i n faza f9# c?nd vor decide pe v.
-ondiia de a.reement este asi.urat de intervenia re.ilor. -um sunt f9# faze$ mcar o faz are un re.e nedefect.
Lema 2. !ie . o faz astfel nc?t re.el p. nu este defect. 0tunci toate procesoarele nedefecte sf?resc faza . cu acceai preferin.
Demonstraie Presupunem c toate procesoarele nedefecte folosesc valoarea ma'oritar primit de la re.e ca preferin. -um re.ele nu este defect$ trimite acest mesa'
tuturor i deci ele vor avea aceeai preferin.
Presupunem c un procesor nedefect pi folosete valoarea ma'oritar proprie v ca preferin. +eci pi primete mai mult de f
n
+
%
mesa'e e.ale cu v n prima rund a
fazei .. n consecin orice procesor (inclusiv re.ele p. ) primete
%
n
> mesa'e e.ale cu v n prima rund a fazei . i ii va ale.e valoarea sa ma'oritar e.al cu v. +eci n faza .9#
toate procesoarele vor avea acceai preferin i lema # ne asi.ur c vor decide pe acceai valoare la sf?rit. -oncluzie
Teorem +ac nKIf$ al.oritmul precedent rezolv problema consensului n prezena a f defeciuni Vizantine n %(f9#) runde folosind mesa'e de dimensiune constant.
*bservaie. Hn cazul sistemelor istrbuite asincrone$ nu se poate rezolva problema consensului$ c)iar n prezena unei sin.ure defecuni.

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