Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed...
-
Upload
edson-van-der-vinne-guterres -
Category
Documents
-
view
214 -
download
0
Transcript of Slides for Chapter 11: Coordination and Agreement From Coulouris, Dollimore and Kindberg Distributed...
Slides for Chapter 11: Coordination and Agreement
From Coulouris, Dollimore and KindbergDistributed Systems:
Concepts and DesignEdition 3, © Addison-Wesley 2001
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.1A network partition
Crashedrouter
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.2Server managing a mutual exclusion token for a set of processes
Server
1. Requesttoken
Queue ofrequests
2. Releasetoken
3. Granttoken
4
2
p4
p3p
2
p1
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.3A ring of processes transferring a mutual exclusion token
pn
p2
p3
p4
Token
p1
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Algoritmo de Ricart e Agrawala
Ricart e Agrawala [1981] Implementa exclusão mútua distribuída entre N
processos.usa “multicast” e clocks lógicos
Idéia básica: Processos que requerem entrar em uma seção crítica “multicast” uma mensagem de “request”, e pode entrar somente quando todos os outros processos têm respondido a esta mensagem de “request”.
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Algoritmo de Ricart e Agrawala
As condições sob as quais um processo responde a um “request” são projetadas para garantir que as condições ME1(segurança), ME2(vivacidade)-ME3(ordenação) são satisfeitas.
Os processos p1, p2,..., pN arcam com identificadores numéricos distintos.
É assumido existirem canais de comunicação entre os processos e cada processo guarda um clock lógico de Lamport, atualizado de acordo com as regras LC1-LC4 (Cap10 – Tempo em SDs).
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Algoritmo de Ricart e Agrawala
Mensagens de “request” são da forma <T,pi>, onde T é o rótulo de tempo do processo enviando o “request” e pi é o identificador do processo que envia o “request”.
Cada processo registra seu estado em uma variável state:
- de estar fora da seção crítica (RELEASED), - esperando entrar na seção crítica (WANTED), - ou estando na seção crítica (HELD)
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Algoritmo de Ricart e Agrawala
Se um processo requisita entrar e o estado de todos os processos é RELEASED, então todos os processo responderão imediatamente ao “request” e o processo requerente obterá a entrada na seção crítica.
Se algum processo está em HELD, então aquele processo não responderá a “requests” até que ele tenha terminado sua seção crítica.
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Algoritmo de Ricart e Agrawala
E assim, o processo requerente não pode ganhar a entrada enquanto isso.
Se dois ou mais processos requerem entrar ao mesmo tempo em suas seções críticas, então qualquer que seja o processo requerente, aquele que suporta o menor rótulo de tempo será o primeiro a coletar N-1 respostas (replies), concedendo a ele próxima entrada na seção crítica.
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Algoritmo de Ricart e Agrawala
Se os “requests” têm rótulos de tempo iguais, os “requests” são ordenados pelos identificadores correspondendo aos processos.
Note que, quando um processo “requests” entrada, ele adia o processamento de “requests” de outros processos até que seu próprio “request” tenha sido enviado e ele tenha registrado o rótulo de tempo T do “request”.
É assim que processos tomam decisões consistentes quando processando “requests”.
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Algoritmo de Ricart e Agrawala
O algoritmo alcança a propriedade ME1:Se fosse possível para dois processos pi e pj (i
diferente de j) entrarem nas suas seções críticas ao mesmo tempo, então ambos os processos teriam que ter respondido ao outro.
Mas, visto que, os pares <Ti,pi> e <Tj,pj> são totalmente ordenados, isto se torna impossível.
O algoritmo também satisfaz a ME2 e ME3.
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.4Ricart and Agrawala’s algorithm
On initializationstate := RELEASED;
To enter the sectionstate := WANTED;Multicast request to all processes; request processing deferred hereT := request’s timestamp;Wait until (number of replies received = (N – 1));state := HELD;
On receipt of a request <Ti, pi> at pj (i ≠ j)if (state = HELD or (state = WANTED and (T, pj) < (Ti, pi)))then
queue request from pi without replying; else
reply immediately to pi;end if
To exit the critical sectionstate := RELEASED;reply to any queued requests;
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Algoritmo de Ricart e Agrawala
Para ilustar o algoritmo, considere a Figura 11.5, seguinte.
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.5Multicast synchronization
p3
34
Reply
34
41
4141
34
p1
p2
ReplyReply
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Algoritmo de Ricart e Agrawala
Assuma que p3 não está interessado em entrar na sua seção crítica.
P1 e p2 “requests” entrar concorrentemente.
O rótulo de tempo de p1, T1, é 41.
O rótulo de tempo de p2, T2, é 34.
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Algoritmo de Ricart e Agrawala
Quando p3 recebe seus “requests”, ele responde imediatamente, a p1 e a p2.
Quando p2 recebe o “request” de p1, ele descobre que seu próprio “request” tem o rótilo de tempo menor e assim, não “reply”, retendo p1 a esperar.
Contudo, p1 descobre que o “request” de p2 ^tem o rótulo de tempo menor do que o seu próprio “request” e assim responde imediatamente.
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Algoritmo de Ricart e Agrawala
No recebimento do segundo “reply”, p2 pode então entar na sua seção crítica.
Quando p2 sai da sua seção crítica, ele responderá ao “request” de p1 e assim, concede a ele a entrada.
Para obter a entrada, o algoritmo proporciona 2(N-1) mensagens, seguidas por (N-1) respostas.
A vantagem do algoritmo é que seu atraso de sincronização é “round-trip syncronization”, ou seja, somente sobre o tempo de ida-e-volta para transmissão das mensagens “requests” e “replies”.
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.6Maekawa’s algorithm – part 1
On initializationstate := RELEASED;voted := FALSE;
For pi to enter the critical sectionstate := WANTED;Multicast request to all processes in Vi – {pi};Wait until (number of replies received = (K – 1));state := HELD;
On receipt of a request from pi at pj (i ≠ j)if (state = HELD or voted = TRUE)then
queue request from pi without replying; else
send reply to pi;voted := TRUE;
end if Continues on next slide
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.6Maekawa’s algorithm – part 2
For pi to exit the critical sectionstate := RELEASED;Multicast release to all processes in Vi – {pi};
On receipt of a release from pi at pj (i ≠ j)if (queue of requests is non-empty)then
remove head of queue – from pk, say; send reply to pk;voted := TRUE;
else voted := FALSE;
end if
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.7A ring-based election in progress
24
15
9
4
3
28
17
24
1
Note: The election was started by process 17.The highest process identifier encountered so far is 24. Participant processes are shown darkened
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.8The bully algorithm
p1 p2
p3
p4
p1
p2
p3
p4
Ccoordinator
Stage 4
C
election
electionStage 2
p1
p2
p3
p4
C
election
answer
answer
electionStage 1
timeout
Stage 3
Eventually.....
p1
p2
p3
p4
election
answer
The election of coordinator p2, after the failure of p4 and then p3
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.9Open and closed groups
Closed group Open group
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.10Reliable multicast algorithm
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.11The hold-back queue for arriving multicast messages
Messageprocessing
Delivery queueHold-back
queue
deliver
Incomingmessages
When delivery guarantees aremet
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.12Total, FIFO and causal ordering of multicast messages
F3
F1
F2
T2T1
P1 P2 P3
Time
C3
C1
C2
Notice the consistent ordering of totally ordered messages T1 and T2, the FIFO-related messages F1 and F2 and the causally related messages C1 and C3 – and the otherwise arbitrary delivery ordering of messages.
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.13Display from bulletin board program
Bulletin board: os.interesting
Item From Subject
23 A.Hanlon Mach
24 G.Joseph Microkernels
25 A.Hanlon Re: Microkernels
26 T.L’Heureux RPC performance
27 M.Walker Re: Mach
end
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.14Total ordering using a sequencer
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.15The ISIS algorithm for total ordering
21
1
2
2
1 Message
2 Proposed Seq
P2
P3
P1
P4
3 Agreed Seq
3
3
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.16Causal ordering using vector timestamps
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.17Consensus for three processes
1
P2
P3 (crashes)
P1
Consensus algorithm
v1=proceed
v3=abort
v2=proceed
d1:=proceed d2:=proceed
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.18Consensus in a synchronous system
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.19Three byzantine generals
p1 (Commander)
p2 p3
1:v1:v
2:1:v
3:1:u
p1 (Commander)
p2 p3
1:x1:w
2:1:w
3:1:x
Faulty processes are shown shaded
Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000
Figure 11.20Four byzantine generals
p1 (Commander)
p2 p3
1:v1:v
2:1:v3:1:u
Faulty processes are shown shadedp4
1:v
4:1:v
2:1:v 3:1:w
4:1:v
p1 (Commander)
p2 p3
1:w1:u
2:1:u3:1:w
p4
1:v
4:1:v
2:1:u 3:1:w
4:1:v