sistemas distribuídos - wordpress.com · sistemas distribuídos. •permite avaliar predicados...
TRANSCRIPT
Sistemas Distribuídos
Estados globais
Vinícius Fernandes Soares Mota
1
Tópicos
• Tempo e relógio lógicos (revisão curta)• Relógios vetoriais
• Estados Globais
• Snapshot distribuído
DECSI/ICEA UFOP
2
Antes...
Por que a sincronização do relógio do computador é necessária?
DECSI/ICEA UFOP
3
Tempo lógico e relógio lógico
• Principais propriedades de um algoritmo distribuído:• Informações são distribuídas pelos vários nodos do
sistema
• Processos tomam decisões baseados apenas nas informações locais
• Sem um ponto único de falhas
• Não existe um relógio global a todo sistema
DECSI/ICEA UFOP
4
Relação Happens-Before
• Notação: A B• Lê-se que “A ocorreu antes de B”
• Significado: todos os processos do sistema concordam que primeiro ocorreu o evento A e então o evento B
• Eventos que não são ordenados pela relação “” são ditos concorrentes.• Notação: A \\ B
DECSI/ICEA UFOP
5
Implementação da Relação Happens-Before• Algoritmo de Lamport
• Utiliza o conceito de relógio lógico (C):• Inteiro monotonicamente crescente armazenado em
cada nodo
• Incrementado a cada evento
• Implementação do conceito de relógio lógico:• Se A B
então C(A) < C(B)
• O contrário não precisa ser verdadeiro
DECSI/ICEA UFOP
6
Atualização de Relógio Lógico
• Relógio (Cp) é incrementado antes de cada evento de (P).
• Quando P envia uma mensagem M para Q, • insere um timestamp t= Cp
• Quando Q recebe (M, t), entãoCq:= max (Cq, t) + 1
(garante-se assim que Cp < Cq)
DECSI/ICEA UFOP
7
Ocorrência de eventos nos processos P1, P2 e P3
DECSI/ICEA UFOP
8
p1
p2
p3
a b
c d
e f
m1
m2
Tempo
Físico
Rótulos de tempo do Algoritmo de Lamport para ordenação de eventos
DECSI/ICEA UFOP
9
a b
c d
e f
m1
m2
21
3 4
51
p1
p2
p3
TempoFísico
Relógios Vetoriais
• Um relógio lógico estabelece uma ordem total de todos os eventos, mesmo quando dois eventos são incomparáveis utilizando a relação happened-before.
• Embora os relógios lógicos não conseguem tratar toda a informação sobre a relação happened before.
• Vamos descrever um mecanismo chamado de vetor de relógios capaz de abranger toda a informação sobre a relação happened-before
DECSI/ICEA UFOP
10
Relógios Vetoriais
Proposto por Mattern and Fidge, cada processoincrementa seu próprio relógio vetorial, e após isso enviajunto com a mensagem uma cópia de seu relógio vetorial.No recebimento da mensagem, atualiza os valores dorelógio vetorial para o máximo de cada um.
DECSI/ICEA UFOP
11
Relógios Vetoriais
DECSI/ICEA UFOP
12
Estado Global
• Estado global capta o conjunto de eventos que
foram executados até o momento.
• Em sistemas distribuídos é complicado avaliar o
estado global, é preciso cuidado ao se estabelecer
o que ocorreu durante a execução.
• São utilizados para resolver muitos problemas em sistemas distribuídos.
DECSI/ICEA UFOP
13
Estado Global - Problemas
• Coleta de lixo distribuída: um objeto é considerado lixo se não existem mais referências a ele em nenhuma parte do sistema distribuído.
• Detecção de deadlock distribuída: um deadlockdistribuído ocorre quando cada processo de uma coleção de processos espera que outro envie uma mensagem para o outro.
• Detecção de término distribuída: detectar se um algoritmo distribuído terminou.
DECSI/ICEA UFOP
14
Estado Global - Problemas
DECSI/ICEA UFOP
15
Estado Global Consistente
• Para achar estados globais consistentes é utilizado uma técnica de corte.
• Este corte é uma divisão na execução do sistema, ou seja é um subconjunto do histórico global.
• Eventos à direita do corte estão fora do estado global e eventos à esquerda do corte estão dentro do estado global.
• Corte podem ser:• Consistentes: obedecem causalidade;
• Insconsistentes: não obedecem causalidade.
DECSI/ICEA UFOP
16
Estado Global Consistente
• Histórico local do processo i: hi = < e0, e1, e2,..>
• Histórico global : H = h0 ∪ h1 ∪ ... ∪ hN-1
DECSI/ICEA UFOP
17
Estado Global Consistente
DECSI/ICEA UFOP
18
m1 m2
p1
p2Tempo físico
e1
0
Corte consistente
Corte insconsitente
e 1
1e 1
2e 1
3
e 20
e 21
e 22
Estado Global Consistente
• O corte da esquerda é inconsistente porque, em p2, ele inclui a recepção da mensagem m1, mas p1 não inclui o envio dessa mensagem.
• Isso está mostrando um efeito sem causa.
DECSI/ICEA UFOP
19
m1 m2
p1
p2Tempo físico
e1
0
Corte consistenteCorte insconsitente
e 1
1e 1
2e 1
3
e 20
e 21
e 22
Estado Global Consistente
• O corte da direita é consistente. Ele inclui tanto o envio como a recepção da mensagem m1. Ele inclui o envio, mas não a recepção da mensagem m2.
• Isso é consistente com a execução real – afinal, a mensagem levou algum tempo para chegar.
DECSI/ICEA UFOP
20
m1 m2
p1
p2Tempo físico
e1
0
Corte consistenteCorte insconsitente
e 1
1e 1
2e 1
3
e 20
e 21
e 22
Algoritmo snapshot distribuído
• Algoritmo de Chandy e Lamport (1985).
• Determina estados globais consistentes em sistemas distribuídos.
• Permite avaliar predicados estáveis.
• Características instáveis em relação a um objeto: possui lixo, estar em deadlock ou estar terminado.
• Qualquer processo pode inciar o snapshot.
• Vários snapshots podem estar executando em paralelo.
DECSI/ICEA UFOP
21
Premissas do algoritmo
• n processos no sistema.
• Cada canal de comunicação é unidirecional com entrega FIFO.• FIFO: mensagem enviada primeiro é recebida primeiro.
• Não existe falha no envio de mensagens.
• Todas mensagens chegam intactas (sem perda de informação) e não são duplicadas.
• Processos continuam a executar normalmente durante o snapshot.
DECSI/ICEA UFOP
22
Algoritmo de Chandy e Lamport
• Definido por meio de duas regras• Regra de recepção de marcador
• Regra de envio de marcador
• Ideia Básica
DECSI/ICEA UFOP
23
• cada processo registra seu estado e, também, para cada canal de entrada, um conjunto de mensagens recebidas nele.
• Para cada canal, o processo grava as mensagens que chegaram depois dele ter gravado seu estado e antes que o remetente tenha gravado seu próprio estado.
• Essa organização permite gravar os estados dos processos em diferentes momentos
Algoritmo de Chandy e Lamport
• Regra de recepção de marcadorNa recepção pi de uma mensagem de marcador pelo canal c:
if (pi ainda não tiver gravado seu estado) elegrava seu estado de processo atual;
grava o estado de c como o conjunto vazio;
ativa a gravação de mensagens que chegam por outros ;
elsepi grava o estado de c como o conjunto de mensagens recebidas por c
desde que salvou seu estado.
end if
DECSI/ICEA UFOP
24
Algoritmo de Chandy e Lamport
• Regra de envio de marcadorApós pi ter gravado seu estado, para cada canal de saída c:
pi envia uma mensagem de marcador por c
(antes de enviar qualquer outra mensagem por c).
DECSI/ICEA UFOP
25
DECSI/ICEA UFOP
26
Algoritmo em ação
p
qSq
0 Sq1 Sq
2 Sq3
Sp0 Sp
1 Sp2 Sp
3
m1 m2 m3
DECSI/ICEA UFOP
27
Algoritmo em ação
p
qSq
0 Sq1 Sq
2 Sq3
Sp0 Sp
1 Sp2 Sp
3
m1 m2 m3
q grava seu estado Sq1 , envia marcador para p
DECSI/ICEA UFOP
28
Algoritmo em ação
p
qSq
0 Sq1 Sq
2 Sq3
Sp0 Sp
1 Sp2 Sp
3
m1 m2 m3
p grava seu estado como Sp2, estado do canal vazio
DECSI/ICEA UFOP
29
Algoritmo em ação
p
qSq
0 Sq1 Sq
2 Sq3
Sp0 Sp
1 Sp2 Sp
3
m1 m2 m3
q grava seu estado como m3
DECSI/ICEA UFOP
30
Algoritmo em ação
p
qSq
0 Sq1 Sq
2 Sq3
Sp0 Sp
1 Sp2 Sp
3
m1 m2 m3
Estado Global = ((Sp2, Sq
1), (0,m3) )
DECSI/ICEA UFOP
31
Por que é consistente?
• Prova:
se recv(m) foi gravado entãosend(m) também foi gravado
p q
mM
Algoritmo de Chandy e Lamport
DECSI/ICEA UFOP
32
• O algoritmo seleciona um corte a partir do histórico da execução.
• O corte e, portanto, o estado gravado por esse algoritmo, são consistentes.
Algoritmo de Chandy e Lamport
DECSI/ICEA UFOP
33
m1 m2
p1
p2Physical
time
(1,0) (2,0) (4,3)
(2,1) (2,2) (2,3)
(3,0)
x1= 1 x1= 100 x1= 105
x2= 100 x2= 95 x2= 90
x1= 90
Corte C
O envio dos estados em forma de um relógio vetorial
Um exemplo mais completo
DECSI/ICEA UFOP
34
P1 Inicia o processoMarca o estado como S1Envia Marcador para P2 e P3Abre canal para esperar resposta de p2 e p3 C21 e C31
Um exemplo mais completo
DECSI/ICEA UFOP
35
S1, aguarda respostas C21 e C31
Primeiro marcadorMarca estado como S3Canal C13 vazio (recebeu marcador do P1)
Envia marcador para P2
Aguarda resposta de P2 cana C23
Um exemplo mais completo
DECSI/ICEA UFOP
36
S1, aguarda respostas C21 e C31
S3C13 = <>Aguarda C23
Um exemplo mais completo
DECSI/ICEA UFOP
37
S1, aguarda C21 e C31
S3C13 = <>Aguarda C23
Marcador duplicadoC31 = <>
Um exemplo mais completo
DECSI/ICEA UFOP
38
S1, aguarda C21 e C31
S3C13 = <>Aguarda C23
C31 = <>
S2C32 = <>Aguarda C12
Um exemplo mais completo
DECSI/ICEA UFOP
39
S1, aguarda C21 e C31
S3C13 = <>Aguarda C23
C31 = <>
S2C32 = <>Aguarda C12
Duplicado
Um exemplo mais completo
DECSI/ICEA UFOP
40
S1, aguarda C21 e C31
S3C13 = <>Aguarda C23
C31 = <>
S2C32 = <>
Duplicado
DuplicadoC23= D f
Snapshot
DECSI/ICEA UFOP
41
S1, aguarda C21 e C31
S3C13 = <>
C31 = <>
S2C32 = <>C13 =<>
Duplicado
DuplicadoC23= D f
Snapshot
DECSI/ICEA UFOP
42
S1, aguarda C21 e C31
S3C13 = <>
C31 = <>C21 = <>
S2C23 = <>C13 =<>
Duplicado
DuplicadoC23= D f
Estados finais
DECSI/ICEA UFOP
43
S1 C21 =<>, C31 =<>S2 C12 = <>, C32 = <>S3 C13 = <>, C23 = d f
Questões
DECSI/ICEA UFOP
Vinícius Fernandes Soares Mota
Tempo e relógios
44