Sunteți pe pagina 1din 33

Partea I.

Modele, componente i mecanisme specifice comunicaiilor n sisteme de conducere

Capitolul 4
Mecanisme i algoritmi pentru sincronizarea comunicaiilor
Comunicaia dintre procese:
Transferul de mesaje
Protocoale stratificate
Mesaje de tip cerere/rspuns
Comunicaii de grup
Cooperarea i sincronizarea dintre procese
Implementarea regiunilor critice
Alocarea resurselor
Sisteme monoprocesor:
Procesele partajeaz o memorie comun
Sincronizare folosind semafoare sau monitoare.
Sisteme interconectate de tip reea:
Absena memoriei partajate.

Cap.4. Mecanisme i algoritmi pentru sincronizarea comunicaiilor

Evenimentul A s-a produs naintea evenimentului B - necesit o atenie deosebit


dac cele dou evenimente au fost sesizate de noduri diferite.
Timpul - joac un rol fundamental n multe din metodele de sincronizare.
Modalitile de msurare a timpului la nivelul nodurilor.

Sincronizarea ceasurilor
Sincronizarea proceselor n sisteme distribuite:
mai complicat dect n cele centralizate
trebuie folosii algoritmi distribuii.
Nu este posibil (i nici de dorit) colectarea tuturor informaiilor despre sistem
ntr-un singur loc, n care s fie examinate pentru luarea unei decizii, aa cum se
ntmpl ntr-o abordare centralizat.
Algoritmii distribuii - proprieti:
1. Informaiile relevante sunt rspndite la mai multe noduri.
2. Procesele i fundamenteaz deciziile numai pe informaiile locale.
3. Se evit apariia unui punct de vedere catastrofal n sistem.
4. Nu exist un ceas comun sau o alt surs global, precis, care s furnizeze
informaia despre timp.

Partea I. Modele, componente i mecanisme specifice comunicaiilor n sisteme de conducere

Primele trei puncte arat c nu se poate accepta colectarea tuturor informaiilor


ntr-un singur loc n vederea procesrii lor.
Exemplu:
Pentru a realiza alocarea resurselor, nu se poate accepta varianta transmiterii
tuturor solicitrilor unui singur manager de resurse, care s le examineze i s
acorde sau s refuze alocarea resurselor cerute n funcie de informaiile pe care
le deine despre ntregul sistem.
Suprancrcarea managerului odat cu creterea numrului de noduri care pot
emite cereri
Raiuni de fiabilitate i de toleran la defecte a sistemului n ansamblu.
Ultimul punct - la fel de important.
ntr-un sistem centralizat, timpul este uor de msurat i de gestionat. Atunci
cnd un proces dorete s afle valoarea acestuia, face un apel de sistem i
executivul i-o furnizeaz.
Dac procesul A dorete s afle ct este ceasul i puin mai trziu, procesul B
vrea i el s afle ct este ceasul, atunci B primete (ntotdeauna) o valoare mai
mare (sau cel puin egal) cu cea pe care o primete procesul A.

Cap.4. Mecanisme i algoritmi pentru sincronizarea comunicaiilor

ntr-un sistem distribuit, obinerea unei nelegeri asupra valorii timpului nu este
o problem banal, aa cum este n cazul centralizat.
ntruct timpul este o noiune fundamental pentru modul n care este construit
raionamentul uman, efectul nesincronizrii ceasurilor poate fi dramatic.
Este posibil sincronizarea tuturor ceasurilor ntr-un sistem distribuit?

Ceasuri logice
Element de prelucrare i control - un circuit pentru msurarea scurgerii timpului.
un ceas - care furnizeaz n orice moment ora, minutul, secunda i alte
subdiviziuni;
un timer - un numrtor de impulsuri care provin de la un oscilator de precizie
pilotat cu un cristal de cuar. Timpul n acest caz este gestionat prin software,
fiind incrementat cu fiecare depire a timerului, care genereaz o ntrerupere
(tick).
Elementele de prelucrare i control - integrate ntr-o reea - fiecare cu propriul
lui ceas.
Dei frecvena cristalului de cuar este destul de stabil, nu se poate garanta c
toate nodurile din reea lucreaz cu aceeai frecven, respectiv c ntreruperile
de la timer apar cu aceeai rat.

Partea I. Modele, componente i mecanisme specifice comunicaiilor n sisteme de conducere

De regul cristalele lucreaz la frecvene proprii, care chiar dac difer cu foarte
puin, aceste diferene se pot acumula n timp i pot conduce la valori diferite
ale timpului msurat pentru fiecare nod (glisarea ceasurilor).
Primul algoritm pentru sincronizarea ceasurilor care a demonstrat c acest lucru
este posibil a fost propus de Lamport (1978).
Pleac de la ideea c sincronizarea ceasurilor nu trebuie s fie absolut. Dac
dou procese nu interacioneaz, nu este necesar ca ceasurile lor s fie
sincronizate, deoarece absena acesteia nu va fi observat i deci nu va cauza
probleme.
n plus, Lamport a artat c ceea ce conteaz cu adevrat nu este ca toate
procesele s cad de acord asupra valorii exacte a timpului la un moment dat, ci
mai degrab, s cad de acord asupra ordinii n care apar evenimentele.
n multe situaii, este suficient ca toate nodurile s cad de acord asupra unei
valori a timpului, care nu este neaprat cea astronomic. Pentru o anumit clas
de algoritmi, ceea ce conteaz este consistena intern a ceasurilor, nu msura
n care acestea indic ora exact absolut.
Pentru aceti algoritmi, ceasurile pot fi considerate ca fiind ceasuri logice.

Cap.4. Mecanisme i algoritmi pentru sincronizarea comunicaiilor

Atunci cnd ceasurile nu trebuie s fie numai egale ntre ele, ci s nu difere de
timpul astronomic cu mai mult de o valoare limit impus, atunci ceasurile se
numesc ceasuri fizice.

Algoritmul Lamport de sincronizare a ceasurilor logice.


Lamport a definit o relaie de preceden temporal:
- s-a ntmplat nainte.
a i b - dou evenimente care au aprut n sistem:
ab - a s-a ntmplat naintea lui b
toate nodurile sunt de acord cu faptul c mai nti a aprut evenimentul a,
apoi evenimentul b.
Relaia poate fi observat direct n dou situaii:
1.Dac a i b sunt evenimente n acelai proces, i a apare naintea lui b, atunci
ab este evident adevrat.
2.Dac a este evenimentul transmiterii unui mesaj de ctre un proces, iar b este
evenimentul recepiei mesajului de ctre un alt proces, atunci ab este de

Partea I. Modele, componente i mecanisme specifice comunicaiilor n sisteme de conducere

asemenea adevrat. Un mesaj nu poate fi primit nainte de a fi fost transmis i


nici mcar simultan.
Relaia de preceden temporal este tranzitiv:
Dac ab i bc, atunci ac.
Dac dou evenimente x i y, au loc n dou procese diferite care nu comunic
prin mesaje (nici mcar indirect, prin intermediul altor procese), atunci nici
una din relaiile xy i yx nu sunt adevrate cu certitudine.
Astfel de evenimente se numesc concurente, ceea ce nseamn c nu se poate
afirma nimic cu certitudine despre ordinea temporal n care s-au produs.
Folosind una din metodele de msurare a timpului:
Unui eveniment a i se asociaz C(a) = valoarea timpului la momentul la care
acesta a aprut, asupra creia considerm c au czut de acord toate procesele.
Aceste valori ale timpului au proprietatea c dac ab atunci C(a)<C(b).
Cele dou condiii evidente de preceden temporal prezentate mai sus pot fi
acum reformulate astfel:
Dac a i b sunt evenimente n acelai proces, i a apare naintea lui b, atunci
C(a)<C(b).

Cap.4. Mecanisme i algoritmi pentru sincronizarea comunicaiilor

Dac a este evenimentul transmiterii unui mesaj de ctre un proces, iar b este
evenimentul recepiei mesajului de ctre un alt proces, atunci C(a) i C(b)
trebuie asignate astfel nct toate procesele sunt de acord cu aceste valori i
C(a)<C(b).
n plus, valoarea msurat a timpului, C, trebuie s fie monoton cresctoare.
Eventualele corecii efectuate asupra acestor valori trebuie fcute prin
adunarea unor cantiti pozitive, niciodat prin scdere.
Exemplu:
Fie trei procese, a cror evoluie n timp este ilustrat n figura de mai jos. Cele
trei procese se execut pe trei noduri distincte, fiecare avnd propriul su ceas,
rulnd ntr-un ritm propriu.
Fiecare ceas ruleaz cu o rat constant, dar ratele difer ntre ele datorit
diferenelor dintre cristale.

Partea I. Modele, componente i mecanisme specifice comunicaiilor n sisteme de conducere

10

10

12

16

20

12

16

20

18

24

30

18

24

24

32

40

24

32

40

30

40

50

30

40

50

36

48

60

36

48

42

56

70

42

61

70

64

80

48

69

80

54

72

90

70

77

90

60

80

100

76

85

100

48

a)

b)

a) Trei procese, fiecare cu propriul su ceas


b) Corecia ceasurilor conform algoritmului Lamport

30

60

Cap.4. Mecanisme i algoritmi pentru sincronizarea comunicaiilor

Condiie suplimentar: dou evenimente nu pot s apar simultan.


Soluia - ataarea numrului procesului (identificator unic) ca parte zecimal a
timpului.
Algoritmul Lamport - o cale de a asigna valori temporale distincte tuturor
evenimentelor dintr-un sistem, pe baza urmtoarelor condiii:
1.Dac a apare naintea lui b n acelai proces, atunci C(a)<C(b).
2.Dac a i b reprezint transmisia i recepia aceluiai mesaj, atunci C(a)<C(b).
3.C(a)C(b), a, b dou evenimente din sistem.

Ceasuri fizice
Algoritmul lui Lamport - ordonare clar a evenimentelor n timp.
Valorile timpului asociate acestora nu corespund valorilor exacte ale timpului
absolut.
n sistemele de timp real, aceste valori sunt importante, deci sunt necesare
ceasuri fizice.
Din considerente de eficien i fiabilitate, fiecare nod utilizeaz propriul su ceas
fizic, ceea ce ridic dou probleme:
1.Cum le sincronizm cu timpul absolut?
2.Cum le sincronizm ntre ele?

Partea I. Modele, componente i mecanisme specifice comunicaiilor n sisteme de conducere

Metode de msurare a timpului fizic. Scurt istoric.


Secolul al XVII-lea - ceasuri mecanice - timpul msurat dup un procedeu
astronomic.
secund = 1/243600=1/86400 din durata unei zile solare.
zi solar - intervalul de timp scurs ntre dou treceri consecutive ale soarelui la
zenit.
Perioada de rotaie a Pmntului nu este constant - ci scade continuu datorit
fenomenelor de frecare intern i extern (tendin pe termen lung).
Mici fluctuaii pe termen scurt ale duratei unei zile solare - datorate
turbulenelor din straturile interne de metal topit ale Pmntului.
Calcularea unei zile solare medii - pe baza msurtorilor pentru un numr mare
de zile.

1948 - inventarea ceasului atomic - msurarea timpului s-a putut realiza cu mai
mare precizie i independent de micarea de rotaie a Pmntului.
Numrarea tranziiilor atomului de cesiu 133.
Sarcina msurrii timpului a fost transferat de la astronomi la fizicieni.
secund = timpul necesar pentru ca un atom de cesiu 133 s efectueze exact
9.192.631.770 de tranziii.
Aceast cifr - determinat fcnd o secund atomic egal cu o secund medie
solar n anul introducerii ei.

Cap.4. Mecanisme i algoritmi pentru sincronizarea comunicaiilor

n prezent - zeci de laboratoare dein ceasuri atomice.


Periodic, aceste laboratoare raporteaz ctre BIH (Bureau International de
lHeure) n Paris care este numrul de tranziii ale atomului de cesiu 133
ncepnd cu 1 ianuarie 1958, data introducerii timpului atomic.
BIH mediaz aceste cifre i produce TAI (International Atomic Time).
Durata unei zile exprimat n sistemul atomic este mai mic dect durata zilei
solare medii n timp, diferenele se acumuleaz n mod sistematic.
Din acelai motiv, n 1582 papa Grigorie al XIII-lea a decretat tierea a 10 zile
din calendar.
Pentru a nu se ajunge la o astfel de soluie radical, BIH introduce cte o
secund ori de cte ori discrepana dintre TAI i timpul solar ajunge la 800 ms.
Aceast corecie - un sistem de timp bazat pe secunde constante TAI, dar care
rmne sincronizat pe termen lung cu timpul solar.
Acest sistem este numit UTC Universal Coordinated Time - n prezent st la baza
msurrii timpului fizic.
UTC - accesibil celor care au nevoie de o msurare exact a timpului
Prin intermediul unor staii radio pe unde scurte.
Prin serviciile unor satelii geostaionari.

Partea I. Modele, componente i mecanisme specifice comunicaiilor n sisteme de conducere

Algoritmi de sincronizare a ceasurilor


Dac unul dintre noduri are un receptor pentru UTC, atunci se urmrete
toate celelalte ceasuri s se sincronizeze cu acesta.

ca

Dac nici un nod nu dispune de un receptor pentru UTC - fiecare nod msoar
timpul cu mijloace proprii, urmrindu-se ca valorile acestor timpi s difere ntre
ele cu ct mai puin posibil.
Toi algoritmii se bazeaz pe urmtorul model de sistem:
1.Fiecare nod dispune de un timer care genereaz cte o ntrerupere de H ori pe
secund.
2.Rutina de ntrerupere a timerului incrementeaz un ceas software care
gestioneaz numrul de ntreruperi care a aprut de la un anumit moment fixat
din trecut.
Timerele reale - nu genereaz exact H ntreruperi ntr-o secund.
Eroarea tipic - de ordinul 10-5.
Pentru ca erorile s nu se acumuleze - ceasurile trebuie re-sincronizate
periodic prin software.

Cap.4. Mecanisme i algoritmi pentru sincronizarea comunicaiilor

Algoritmul lui Cristian (1989)


Acesta se refer la un sistem n care un nod denumit server de timp (time
server) are un receptor pentru UTC.
Periodic, celelalte noduri transmit cte un mesaj de tip cerere prin care i solicit
acestuia furnizarea timpului curent.
Atunci cnd rspunsul sosete, el poate fi utilizat pentru ajustarea timpului
local.
ntr-o prim variant, timpul local poate fi setat direct cu valoarea primit. Apar
ns dou probleme:
1.Timpul nu poate curge napoi, deci dac valoarea curent este mai mare dect
valoarea primit, atunci aceasta din urm nu poate nlocui imediat valoarea
curent.
2.Transmisia valorii timpului nu se poate face instantaneu, deci valoarea primit ar
trebui corectat cu durata transmisiei.
Ca o rezolvare a primei probleme, actualizarea napoi a ceasului - ncetinirea
curgerii timpului curent.
n ce privete cea de-a doua problem, corecia nu este att de simpl ntruct
durata transmisiei nu este constant, ci depinde de ncrcarea reelei.

Partea I. Modele, componente i mecanisme specifice comunicaiilor n sisteme de conducere

Ea poate fi estimat pe baza msurrii timpului scurs ntre transmiterea


solicitrii i primirea rspunsului, bazndu-ne pe faptul c transmisia cererii i
recepia rspunsului se fac n intervale egale.
De asemenea, mai poate fi luat n calcul i timpul de rspuns la ntrerupere al
serverului de timp.
Se pot face mai multe msurtori care se mediaz sau se poate reine durata
cea mai scurt, ca fiind cea mai reprezentativ pentru propagarea mesajelor n
reea.
Algoritmul Berkeley
Algoritmul lui Cristian - serverul de timp are un rol pasiv: celelalte noduri
solicit valoarea timpului, iar el nu face dect s rspund acestor cereri.
Algoritmul Berkeley - serverul de timp are un rol activ: el le solicit celorlalte
noduri valorile timpului local.
n funcie de rspunsuri calculeaz o valoare medie, pe baza creia le transmite
celorlalte noduri instruciuni privind avansarea ceasurilor sau ncetinirea lor
pentru un anumit timp.
Aceast metod este aplicabil n cazul n care nici un nod nu are un receptor
UTC.

Cap.4. Mecanisme i algoritmi pentru sincronizarea comunicaiilor

Algoritmi distribuii
Primele dou tipuri de algoritmi sunt centralizate - au dezavantaje specifice unei
asemenea abordri.
categorie de algoritmi distribuii de sincronizare a ceasurilor apeleaz la
folosirea unor intervale fixe de resincronizare.
La nceputul fiecrui interval, fiecare nod transmite valoarea timpului aa cum
este ea nregistrat de ceasul local, apoi ateapt un anumit interval de timp
sosirea rspunsurilor.
Atunci cnd toate rspunsurile au sosit, ele sunt folosite pentru calcularea unei
noi valori pentru timpul local.
Aceasta se poate face prin simpla mediere a valorilor primite, sau prin filtrarea
acestora urmat de mediere.
alt posibilitate este aceea de a ncerca corectarea fiecrui mesaj cu o estimare
a duratei transmisiei mesajului.

Excluderea mutual
Aplicaiile n care sunt implicate mai multe procese sunt adeseori mai uor de
programat folosind regiuni critice.

Partea I. Modele, componente i mecanisme specifice comunicaiilor n sisteme de conducere

Atunci cnd un proces trebuie s citeasc sau s actualizeze anumite structuri de


date partajate, acesta mai nti intr ntr-o regiune critic pentru a-i asigura
accesul exclusiv la date, adic pentru a fi sigur c nici un alt proces nu va folosi
variabilele partajate n acelai timp cu el.
La nivelul unui singur nod, regiunile critice pot fi protejate spre exemplu prin
semafoare.

Algoritm centralizat de excludere mutual


Calea cea mai direct - de a simula modul n care problema este rezolvat n
cadrul sistemelor cu un singur nod.
Unul dintre procese - coordonator.
Ori de cte ori un proces (1) dorete s intre ntr-o regiune critic, el cere
permisiunea coordonatorului printr-un mesaj (REQ - Request) n care precizeaz
care este regiunea critic n care dorete obinerea accesului exclusiv.
Dac nici un alt proces nu se afl n regiunea critic specificat, coordonatorul
rspunde cu un mesaj prin care precizeaz c se acord accesul (GT- Grant).
Atunci cnd primete permisiunea, solicitantul intr n regiunea critic.

Cap.4. Mecanisme i algoritmi pentru sincronizarea comunicaiilor

REQ

a)

GT

C oada
e s te
g o a l

b)

REL

c)

REQ

GT

2
C

d)

Excludere mutual centralizat - dou cereri de acces ntr-o regiune critic

Partea I. Modele, componente i mecanisme specifice comunicaiilor n sisteme de conducere

Un al doilea proces (2) solicit accesul n aceeai regiune critic.


Coordonatorul tie c deja este un proces n regiunea critic i nu va acorda
permisiunea.
Modul concret n care face acest lucru depinde de implementarea sistemului.
Spre exemplu - coordonatorul poate amna transmiterea rspunsului, blocnd
astfel procesul solicitant pn cnd primul proces iese din regiunea critic.
n acest moment coordonatorul primete un mesaj prin care este informat
asupra eliberrii regiunii critice (REL - Release).
alt posibilitate este transmiterea unui mesaj prin care solicitantul este informat
despre ne-acordarea permisiunii de a intra n regiunea critic (DENY).
n ambele cazuri, coordonatorul reine ntr-o coad cererile pn cnd le poate
rezolva.
Algoritmul garanteaz excluderea mutual i acord permisiunea de a intra n
regiunea critic n ordinea sosirii cererilor.
Schema este uor de implementat ntruct necesit doar trei mesaje pentru fiecare
acces ntr-o regiune critic i poate fi folosit pentru gestionarea accesului la
resurse n general (i altele dect regiunile critice).
Dezavantaje:
folosete un coordonator - un punct de cdere catastrofal.

Cap.4. Mecanisme i algoritmi pentru sincronizarea comunicaiilor

dac procesele se blocheaz n ateptarea permisiunii, iar coordonatorul se


blocheaz, ele nu pot s detecteze blocarea coordonatorului (confuzie cu
permisiune ne-acordat).

Algoritm distribuit de excludere mutual


Ricart i Agrawala (1981) - variant mbuntit a unui algoritm mai vechi al
lui Lamport (1978).
Necesit o ordonare total a evenimentelor din sistem.
Algoritmul lui Lamport asigur aceast condiie i poate fi utilizat pentru a marca
fiecare eveniment cu momentul producerii lui (timestamp).
Atunci cnd un proces dorete s intre ntr-o regiune critic, el construiete un
mesaj coninnd numele regiunii, identificatorul procesului i valoarea timpului
curent.
Apoi transmite mesajul tuturor proceselor din sistem, inclusiv lui nsui.
Se presupune c serviciul de transmisie garanteaz livrarea mesajelor la
destinaie, adic fiecare mesaj recepionat este nsoit de o confirmare.
Se pot folosi n acest scop primitive fiabile de comunicaie de grup.

Partea I. Modele, componente i mecanisme specifice comunicaiilor n sisteme de conducere

Atunci cnd un proces primete o cerere de la un alt proces, se comport


difereniat, n funcie de raportul pe care acesta l are cu regiunea critic
specificat n cerere:
1.Dac receptorul nu este n regiunea critic i nici nu dorete s intre n acel
moment, transmite napoi un mesaj de acordare a permisiunii GT (procesul 1).
2.Dac receptorul este deja n regiunea critic, atunci nu rspunde, ci memoreaz
cererea ntr-o coad.
3.Dac receptorul dorete i el s intre n regiunea critic, dar nc nu a primit
permisiunea (procesele 0 i 2), compar timpul asociat mesajului recepionat cu
cel asociat cererii pe care a transmis-o celorlalte procese.
Dac timpul mesajului recepionat este mai mic, nseamn c a aprut primul i
acesta ctig: receptorul transmite napoi un mesaj GT.
Dac propriul su mesaj are un timp mai mic, atunci receptorul memoreaz
cererea intr-o coad i nu rspunde.

Cap.4. Mecanisme i algoritmi pentru sincronizarea comunicaiilor


In tr n
r e g iu n e a
c r it ic

b)

a)

0
8
8

G T

A re a c c e s
n r e g iu n e a
c r it ic

G T

G T

I e s e d in
r e g iu n e a
c r it ic

c)

d)
0

G T

2
A te a p t i
u lt im a
c o n f ir m a r e

2
In tr n
r e g iu n e a
c r it ic

Excludere mutual n varianta distribuit - dou cereri de acces ntr-o regiune


critic

Partea I. Modele, componente i mecanisme specifice comunicaiilor n sisteme de conducere

Dup ce a transmis o cerere, un proces ateapt pn cnd primete confirmri de


la toate celelalte procese, dup care intr n regiunea critic.
Atunci cnd prsete regiunea critic, transmite mesaje GT tuturor proceselor de
la care are cereri memorate n coada de ateptare, care astfel redevine goal
(procesul 0).
Este evident asigurarea excluderii mutuale, fr blocarea proceselor la
nesfrit.
Numrul de mesaje este 2(N-1) pentru fiecare acces ntr-o regiune critic, unde
N este numrul de procese care pot cere acces la ea.
Dezavantaj:
A fost nlocuit un punct de cdere catastrofal cu N astfel de puncte.
Dac oricare dintre procese cade (procesul 2), el nu va mai rspunde la cereri,
ceea ce ar putea fi interpretat n mod greit ca o interzicere a accesului la regiunea
critic.
Aceasta blocheaz orice ncercare de a se intra n regiunea critic.

Cap.4. Mecanisme i algoritmi pentru sincronizarea comunicaiilor

Pentru a se evita o astfel de situaie, algoritmul poate fi ameliorat:


Receptorul va transmite ntotdeauna un mesaj, fie de acordare a permisiunii
(GT) fie de interzicere a accesului n zona critic (DENY).
Ori de cte ori o cerere sau o confirmare se pierde, transmitorul ateapt un
timp finit;
dup care rencearc de un anumit numr de ori
numai n cazul n care nu primete nici un rspuns conchide c nodul respectiv a
czut.
Dup primirea unui mesaj de interzicere a accesului, procesul se blocheaz n
ateptarea unui mesaj GT.
Algoritmul poate fi mbuntit astfel nct procesul care a cerut accesul la o
regiune critic s nu trebuiasc s atepte toate confirmrile, ci doar majoritatea
acestora.
n acest caz, dac un proces a acordat permisiunea de acces unui alt proces,
atunci nu va transmite un alt mesaj GT pn cnd nu este informat c primul a
eliberat regiunea critic.

Partea I. Modele, componente i mecanisme specifice comunicaiilor n sisteme de conducere

Algoritm distribuit bazat pe tehnica jetonului


O abordare cu totul diferit - care nu necesit o ordonare temporal a
evenimentelor.
Presupune construirea unui inel logic n software (list circular), n care intr
toate procesele care pot cere accesul ntr-o regiune critic.
Fiecare proces tie care este urmtorul proces n lista circular.
La iniializare, unul dintre procese deine un jeton, care i confer dreptul de
acces la regiunea critic.
Acesta circul continuu de-a lungul inelului, cu ajutorul unor mesaje punct-lapunct.
Atunci cnd un proces dorete s intre n regiunea critic, ateapt s primeasc
jetonul, intr n regiunea critic, iar la ieire transmite jetonul urmtorului
proces din list.
Dac un proces primete jetonul i nu intenioneaz s intre n regiunea critic,
atunci pur i simplu l transmite mai departe succesorului su n lista circular.

Cap.4. Mecanisme i algoritmi pentru sincronizarea comunicaiilor


Procese

Deintorul jetonului poate


intra n regiunea critic sau
poate transmite jetonul mai
departe

7
4

Excludere mutual n varianta distribuit - tehnica jetonului

Partea I. Modele, componente i mecanisme specifice comunicaiilor n sisteme de conducere

Corectitudinea acestui algoritm este evident.


Un singur proces deine jetonul n orice moment, deci numai acel proces se
poate afla n regiunea critic.
ntruct jetonul circul ntre procese ntr-o ordine bine stabilit, nu pot s apar
cereri nesatisfcute sau blocaje.
Dei este mai simplu, i acest algoritm are probleme.
Dac jetonul se pierde, trebuie regenerat.
De fapt, detectarea acestui fapt este dificil, ntruct perioada de rotaie a
jetonului nu este limitat superior.
Faptul c jetonul nu a aprut de mult timp nu nseamn c s-a pierdut, este
posibil ca un proces s-l utilizeze nc.
Algoritmul este sensibil i la cderea unui nod, dar mai puin.
Atunci cnd un proces ncearc s-i transmit succesorului su jetonul, iar
acesta nu confirm primirea, nseamn c nodul respectiv a czut, iar jetonul
este pasat mai departe urmtorului din list.
Aceasta nseamn ns ca fiecare nod s dein ntreaga configuraie a listei i
s o actualizeze continuu.

Cap.4. Mecanisme i algoritmi pentru sincronizarea comunicaiilor

Algoritmi de selecie
Muli algoritmi distribuii necesit ca unul dintre noduri s joace la un moment
dat rolul de coordonator, iniiator, secveniator, sau orice alt rol special.
n general, nu conteaz care dintre noduri joac acest rol.
Important este s existe un astfel de nod i el s fie unic.
Vom atribui n cele ce urmeaz unui astfel de proces special denumirea generic
de coordonator.
Dac toate nodurile sunt echivalente logic, nu exist nici o cale pentru a selecta
unul dintre ele n funcie de caracteristicile sale speciale.
n general, fiecare nod are un identificator unic n cadrul sistemului.
posibilitate folosit n general de algoritmi este aceea de a selecta nodul avnd
cel mai mare cod de identificare.
Algoritmii de selecie difer n funcie de modul n care se realizeaz localizarea
noului coordonator.

Partea I. Modele, componente i mecanisme specifice comunicaiilor n sisteme de conducere

De asemenea, vom presupune c fiecare nod cunoate codurile de identificare ale


celorlalte noduri. Ceea ce nu se cunoate este care dintre acestea sunt funcionale
i care nu.
Scopul algoritmului de selecie - de a asigura c atunci cnd procesul de alegere
ncepe, se va ncheia cu o nelegere din partea tuturor proceselor funcionale
asupra nodului care va deveni noul coordonator.

Algoritm de selecie bazat pe codul de identificare

Algoritmul Garcia-Molina (1982).

Atunci cnd un proces P constat c coordonatorul curent nu mai rspunde la


cereri, iniiaz o nou alegere, astfel:
1.P transmite un mesaj ELECTION tuturor proceselor cu coduri de identificare mai
mare dect al su.
2.Dac nu primete nici un rspuns, consider c a ctigat alegerile i devine noul
coordonator.
3.Dac primete un rspuns de la un alt proces, acesta preia rolul lui P.

Cap.4. Mecanisme i algoritmi pentru sincronizarea comunicaiilor

n orice moment, un proces poate primi un mesaj ELECTION de la unul dintre


procesele avnd codul de identificare mai mic dect al su.
Atunci cnd sosete un astfel de mesaj, confirm primirea mesajului (ACK),
indicnd c este funcional i c a preluat sarcina de a stabili noul coordonator.
Pn la urm toate procesele renun, cu excepia celui care are codul de
identificare cel mai mare.
Acesta i anun victoria printr-un mesaj adresat tuturor celorlalte noduri, care
astfel afl care este noul coordonator.
Dac un nod care anterior a fost oprit pornete, atunci el iniiaz o nou alegere.
Dac se ntmpl s dein cel mai mare cod de identificare, atunci va ctiga i
va prelua rolul de coordonator.

Partea I. Modele, componente i mecanisme specifice comunicaiilor n sisteme de conducere


2

ELECTION

OK

ELECTION

OK

ELECTION

0
6

Coordonatorul
anterior a czut

a)

COORDINATOR

b)
0

6
2

1
7

e)

ELECTION

ELECTION
0

OK
0

ELECTION
7

3
c)

3
d)

Funcionarea algoritmului de selecie bazat pe codul de identificare

Cap.4. Mecanisme i algoritmi pentru sincronizarea comunicaiilor

Algoritm de selecie n inel


Un alt algoritm folosete un inel, dar fr jeton.
Se presupune c nodurile sunt interconectate fizic sau logic ntr-un inel, astfel
nct fiecare nod cunoate care este succesorul su.
Atunci cnd un nod constat c coordonatorul curent nu mai funcioneaz,
construiete un mesaj de tip ELECTION care conine propriul cod de identificare
i l transmite ctre urmtorului nod din inel.
Dac acesta este oprit, atunci sare peste el i l transmite ctre urmtorul care
rspunde la mesaj.
La fiecare pas, procesul transmitor adaug propriul su cod de identificare la
mesaj i l transmite mai departe.
Atunci cnd mesajul ajunge din nou la iniiatorul alegerilor, acesta recunoate
mesajul dup codul de identificare care este prezent n mesaj.
n acel moment, tipul mesajului este schimbat n COORDINATOR i circul nc o
dat n list pentru a informa toate nodurile care este nodul coordonator (cel cu
codul de identificare cel mai mare din list) i care sunt membrii actuali ai listei.
Dup ce acest mesaj a fcut un tur complet el nu mai este transmis mai departe
i fiecare nod se ntoarce la activitatea sa.

Partea I. Modele, componente i mecanisme specifice comunicaiilor n sisteme de conducere

5
6
0

ELECTION

ELECTION

ELECTION
3

ELECTION

2
3

5
6
7
4

Coordonatorul
anterior a czut

6
Nici un
rspuns

ELECTION

Funcionarea algoritmului de selecie n inel

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