Post on 31-Aug-2019
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Algoritmul Hirschberg-SinclairPrezentare laborator APD
Mihai Barbulescu331CA
Facultatea de Automatica s, i CalculatoareUniversitatea Politehnica Bucures, ti
7 ianuarie 2013
1 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Cuprins
1 Context
2 Topologii inel - problema generala
3 HS - principii
4 HS - implementare
5 Intrebari
2 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Problema: Alegerea liderului
Problema generica
Dintr-o colect, ie de procese, se alege unul singur care urmeazasa fie lider
De ce? Alegerea unui lider este necesara ca fazapremergatoare execut, iei unui algoritm centralizat
Paradigma client-server a sistemelor distribuiteLiderul executa operat, ii de init, ializareLiderul controleaza alte procese
Algoritmii de alegere a unui lider sunt descentralizat, i s, iparticipa toate procesele din colect, ie.
3 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Problema: Alegerea liderului
Ce problema mai simpla, echivalenta, gasim?
Compozit, ia exacta a grupului de procese nu e cunoscuta ⇒alegerea statica nu e o solut, ie
Fiecare proces ıs, i cunoas, te propriul PID s, i vecinii
Identitat, ile apart, in unei mult, imi total ordonate
Consecint, a: Alegerea unui lider se transforma ın alegereaprocesului cu PID maxim (sau minim)
Pentru topologia inel se convine alegerea procesului cu PIDmaxim
4 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Problema: Alegerea liderului
Ce fel de topologie de procese avem?
Arbore → Algoritmi unda (algoritmul tree)Exemplu de utilizare: In algoritmii de determinare a arboreluiminim de acoperire (Prim): liderul este radacina arborelui
Inel → Algoritmii LeLann, LeLann Chang Robert,Hirschberg-SinclairExemplu de utilizare: Refacerea dupa pierderea token-ului(detectata printr-un timeout) ıntr-o ret, ea Token Ring
5 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Alegerea liderului ın topologii inel
Specificarea problemei
Procese aranjate ın inel, identificate prinnumere
Dispunerea proceselor ın inel estealeatoare
Se cere desemnarea prin consens a unuisingur proces drept lider al grupului deprocese
Numarul de procese (notat n) s, i topologianu sunt cunoscute dinainte
Solut, ie distribuita ⇒ nu avem controlcentralizat.
1
23
4
5
67
8
6 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
O prima solut,ie: Algoritmii LeLann s, i Lelann-Chang-Robert
Algoritmul LeLann
Etape:Fiecare proces transmite ın inel un mesaj care cont, ineidentificatorul sau
Fiecare proces colecteaza numerele celorlalte procese
Fiecare proces calculeaza maximul
Procesul al carui numar este egal cu maximul devine lider
Complexitate:
Fiecare proces transmite un mesaj care e recept, ionat de toatecelelalte procese
Numar de mesaje transmise: O(n2) ⇒ prea multe /
7 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
O prima solut,ie: Algoritmii LeLann s, i Lelann-Chang-Robert
Algoritmul LeLann
Etape:Fiecare proces transmite ın inel un mesaj care cont, ineidentificatorul sau
Fiecare proces colecteaza numerele celorlalte procese
Fiecare proces calculeaza maximul
Procesul al carui numar este egal cu maximul devine lider
Complexitate:Fiecare proces transmite un mesaj care e recept, ionat de toatecelelalte procese
Numar de mesaje transmise: O(n2) ⇒ prea multe /
7 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
O prima solut,ie: Algoritmii LeLann s, i Lelann-Chang-Robert
Algoritmul Lelann-Chang-Robert
Presupune transmiterea mesajelorın sensul acelor de ceasornic
Fiecare proces transmite procesuluidin dreapta un mesaj cuidentificatorul sau
Procesul care primes, te un mesajcompara identificatorul primit (m)cu propriul identificator (id) s, ihotaras, te daca:
a) ıl transmite (m > id)b) ıl elimina (m < id)c) devine lider (m = = id)
8 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Algoritmul Hirschberg-Sinclair
Ipoteze
Lucreaza pe un inel bidirect, ional ⇒ Procesele pot detecta dince direct, ie vine un mesaj, pentru a trimite raspuns ın aceadirect, ie
Se ıncearca optimizarea alegerii liderului prin diminuareanumarului de mesaje
Nu e tratat cazul ın care un proces nu s, tie de alegerealiderului ın curs: el poate primi un mesaj s, i sa devina candidatdaca identitatea sa e mai mare decat identitatea din mesaj ⇒Toate procesele sunt init, iatori
9 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Cum funct,ioneaza algoritmul Hirschberg-Sinclair?
Alegerea ın vecinatat, i
Definit, ie: k-vecinatatea unui proces p este totalitateaproceselor aflate ın stanga, respectiv ın dreapta, ın cadrultopologiei inel, la o distant, a d ≤ k fat, a de procesul p
Algoritmul funct, ioneaza ın faze (sau runde) asincrone
Intr-o faza k un proces p ıncearca sa devina lider ın2k -vecinatatea lui, trimit, and mesaje ın ambele direct, ii
Procesul p poate trece la faza urmatoare (k + 1) doar daca arecel mai mare identificator din 2k -vecinatatea lui.
10 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Cum funct,ioneaza algoritmul Hirschberg-Sinclair?
Alegerea ın vecinatat, i (cont.)
Consecint, e: la fiecare faza se dubleaza numarul de proceseıntr-o vecinatate, iar numarul proceselor care ajung ın fazesuperioare scade
La final exista un singur proces cas, tigator, care este liderultopologiei inel
11 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Cum funct,ioneaza algoritmul Hirschberg-Sinclair?
Trimiterea mesajelor - tipuri de date s, i funct, ionare
Procesele trimit mesaje election care cont, in 3 campuri:
PID = identificatorul procesuluik = numarul fazei curente de execut, ied = hop counter, incrementat la fiecare sendpass dat de unmesaj
Init, ial (faza 0) toate procesele ıs, i anunt, a candidatura,trimit, and mesaje vecinilor
Daca un proces primes, te un mesaj election(x , k ,d) astfelıncat d = 2k atunci este capatul unei 2k -vecinatat, i a unuiproces p cu p. id = x
12 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Hirschberg-Sinclair - implementare
Alte tipuri de date s, i funct, ii
Un proces p are 2 campuri:
id = identificatorul unic al procesului ın topologie, de tip ıntreg
status =
⎧⎪⎪⎨⎪⎪⎩
candidate
leader
Funct, ii de comunicare ın cadrul algoritmului:
sendboth - trimite mesaj atat vecinului din dreapta, cat s, icelui din stangasendpass - mesaj pasat de un proces, venit din dreapta sprestanga sau inverssendecho - trimite raspuns ın direct, ia din care a venit mesajul
13 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Hirschberg-Sinclair - implementare
Alte tipuri de date s, i funct, ii
Un proces p are 2 campuri:
id = identificatorul unic al procesului ın topologie, de tip ıntreg
status =
⎧⎪⎪⎨⎪⎪⎩
candidate
leader
Funct, ii de comunicare ın cadrul algoritmului:
sendboth - trimite mesaj atat vecinului din dreapta, cat s, icelui din stangasendpass - mesaj pasat de un proces, venit din dreapta sprestanga sau inverssendecho - trimite raspuns ın direct, ia din care a venit mesajul
13 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Hirschberg-Sinclair - implementare
Ideea
In faza k un proces trimite election(p. id , k ,d) ın2k -vecinatatea sa ın ambele direct, ii
Daca un proces p primes, te election(x , k ,d) cu x > p. id vatrimite mai departe mesajul, incrementandu-l pe d, altfel ılignora
Ultimul proces p dintr-o 2k -vecinatate trimite raspuns, carecont, ine IDprimit spre procesul origine q daca p. id < IDprimit
Raspunsurile sunt date mai departe ıntotdeauna
Un proces ajunge ın faza superioara k + 1 doar daca primes, teraspuns din ambele part, i ın faza k
Liderul este procesul p care primes, te election(x , k,d) astfelıncat x == p. id
14 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Hirschberg-Sinclair - implementare
Ideea
In faza k un proces trimite election(p. id , k ,d) ın2k -vecinatatea sa ın ambele direct, ii
Daca un proces p primes, te election(x , k ,d) cu x > p. id vatrimite mai departe mesajul, incrementandu-l pe d, altfel ılignora
Ultimul proces p dintr-o 2k -vecinatate trimite raspuns, carecont, ine IDprimit spre procesul origine q daca p. id < IDprimit
Raspunsurile sunt date mai departe ıntotdeauna
Un proces ajunge ın faza superioara k + 1 doar daca primes, teraspuns din ambele part, i ın faza k
Liderul este procesul p care primes, te election(x , k,d) astfelıncat x == p. id
14 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Hirschberg-Sinclair - implementare
Ideea
In faza k un proces trimite election(p. id , k ,d) ın2k -vecinatatea sa ın ambele direct, ii
Daca un proces p primes, te election(x , k ,d) cu x > p. id vatrimite mai departe mesajul, incrementandu-l pe d, altfel ılignora
Ultimul proces p dintr-o 2k -vecinatate trimite raspuns, carecont, ine IDprimit spre procesul origine q daca p. id < IDprimit
Raspunsurile sunt date mai departe ıntotdeauna
Un proces ajunge ın faza superioara k + 1 doar daca primes, teraspuns din ambele part, i ın faza k
Liderul este procesul p care primes, te election(x , k,d) astfelıncat x == p. id
14 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Hirschberg-Sinclair - implementare
Ideea
In faza k un proces trimite election(p. id , k ,d) ın2k -vecinatatea sa ın ambele direct, ii
Daca un proces p primes, te election(x , k ,d) cu x > p. id vatrimite mai departe mesajul, incrementandu-l pe d, altfel ılignora
Ultimul proces p dintr-o 2k -vecinatate trimite raspuns, carecont, ine IDprimit spre procesul origine q daca p. id < IDprimit
Raspunsurile sunt date mai departe ıntotdeauna
Un proces ajunge ın faza superioara k + 1 doar daca primes, teraspuns din ambele part, i ın faza k
Liderul este procesul p care primes, te election(x , k,d) astfelıncat x == p. id
14 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Hirschberg-Sinclair - implementare
Ideea
In faza k un proces trimite election(p. id , k ,d) ın2k -vecinatatea sa ın ambele direct, ii
Daca un proces p primes, te election(x , k ,d) cu x > p. id vatrimite mai departe mesajul, incrementandu-l pe d, altfel ılignora
Ultimul proces p dintr-o 2k -vecinatate trimite raspuns, carecont, ine IDprimit spre procesul origine q daca p. id < IDprimit
Raspunsurile sunt date mai departe ıntotdeauna
Un proces ajunge ın faza superioara k + 1 doar daca primes, teraspuns din ambele part, i ın faza k
Liderul este procesul p care primes, te election(x , k,d) astfelıncat x == p. id
14 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Hirschberg-Sinclair - implementare
Ideea
In faza k un proces trimite election(p. id , k ,d) ın2k -vecinatatea sa ın ambele direct, ii
Daca un proces p primes, te election(x , k ,d) cu x > p. id vatrimite mai departe mesajul, incrementandu-l pe d, altfel ılignora
Ultimul proces p dintr-o 2k -vecinatate trimite raspuns, carecont, ine IDprimit spre procesul origine q daca p. id < IDprimit
Raspunsurile sunt date mai departe ıntotdeauna
Un proces ajunge ın faza superioara k + 1 doar daca primes, teraspuns din ambele part, i ın faza k
Liderul este procesul p care primes, te election(x , k,d) astfelıncat x == p. id
14 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Hirschberg-Sinclair - funct,ie pentru un singur proces
Pseudocod
void HirschbergSinclair(process p) {p.status = candidate; //Faza 0sendboth(election(p.id, 0, 0));//La primirea unui mesaj election(j, k, d)if( j > p.id && d <= pow(2, k) )
sendpass(election(j, k, d + 1);if(j > p.id && d == pow(2, k) )
sendecho(election(j, k, d));if(p.id == j)
broadcast p.status = leader;//La primirea unui echo cu j si kif(p.id != j)
sendecho(election(j, k, d));else if(am mai primit echo cu j si k)
sendpass(election(j, k + 1, 1)}
15 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Hirschberg-Sinclair - topologie exemplu
Rulare Hirschberg-Sinclair
Galben = candidat, a ajunsın fazele superioare
Alb = a pierdut, nu maipoate deveni lider
Init, ial (faza 0): Toatenodurile trimit ın stanga s, iın dreaptaelection(p. id ,0,1)
6
2
8
1
5
3
7
4
16 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Hirschberg-Sinclair - topologie exemplu
Rulare Hirschberg-Sinclair (cont.)
Procesele care aup. id < IDprimit trimit raspuns
Astfel ın faza 1 ajung doarprocesele galbene din figura,deoarece primesc raspunsdin ambele part, i
6
2
8
1
5
3
7
4
17 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Hirschberg-Sinclair - topologie exemplu
Rulare Hirschberg-Sinclair (cont.)
Faza 1: Nodurile galbenetrimit mesajeelection(p. id ,1,2) ın21-vecinatatea lor
Nodurile albe dau sendpass
Nodurile 5 s, i 6 primesc unPID mai mare decat al lor s, iın plus sunt capete devecinatate, deci trimitraspunsul ınapoi la origine(8, respectiv 7)
6
2
8
1
5
3
7
4
18 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Hirschberg-Sinclair - topologie exemplu
Rulare Hirschberg-Sinclair (cont.)
Nodurile 8 s, i 7 au primitraspunsuri din ambeledirect, ii
Sunt astfel singurele procesecare mai pot fi lider
6
2
8
1
5
3
7
4
19 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Hirschberg-Sinclair - topologie exemplu
Rulare Hirschberg-Sinclair (cont.)
Faza 2: 7 si 8 vor trimiteelection(p. id ,2,4) ın22-vecinatat, ile lor
Nodurile albe dau sendpass
Nodul 7 este capat devecinatate s, i primes, te un IDmai mare decat al sau
Nodul 8 este capat devecinatate s, i primes, te un IDmai mic decat al sau
6
2
8
1
5
3
7
4
20 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Hirschberg-Sinclair - topologie exemplu
Rulare Hirschberg-Sinclair (cont.)
Nodul 8 va primi raspunsuridin ambele direct, ii cupropriul ID
Algoritmul se ıncheie6
2
8
1
5
3
7
4
21 / 23
Context Topologii inel - problema generala HS - principii HS - implementare Intrebari
Complexitate Hirschberg-Sinclair
Complexitate
Numar de mesaje: O(n log n) ın cel mai rau caz ,LeLann Chang Roberts are ın cazul cel mai deforabil O(n2
)
mesaje trimise (prea multe /)
Timp: O(n) (la fel ca la LeLann Chang Roberts)
Preferat datorita numarului redus de mesaje trimise
22 / 23