Escolar Documentos
Profissional Documentos
Cultura Documentos
• Motivação
– Suponha uma computação distribuída onde queremos
• Noções iniciais: tempo em SD, drift, skew, UTC responder questões tais como:
• Sincronização de relógios físicos • O sistema está em deadlock?
• Tempo lógico e relógios lógicos • Quantos processos estão acessando um arquivo?
• Qual o saldo atual de uma agência bancária?
– Definição de tempo lógico
– Relógios lógicos de Lamport
– Para respondê-las, podemos enviar requests para todos os
– Relógios lógicos vetoriais = vector clocks processos
• Estados globais – O problema é que enquanto os processos respondem, eles
• Debug distribuído continuam trocando mensagens
– Exemplos…
Sist. Distrib. II - Prof. Cesar A. Tacla 1 Sist. Distrib. II - Prof. Cesar A. Tacla 2
Sist. Distrib. II - Prof. Cesar A. Tacla 5 Sist. Distrib. II - Prof. Cesar A. Tacla 6
1
Estados globais Estados globais
N
Histórico global: H=
i =1
h i
Sist. Distrib. II - Prof. Cesar A. Tacla 7 Sist. Distrib. II - Prof. Cesar A. Tacla 8
N
Estado global: coleção de estados locais
N = número total de processos Σ=
i =1
σ i
N
Corte: coleção de históricos locais parciais. Ci
Sist. Distrib. II - Prof. Cesar A. Tacla 9 Sist. Distrib. II - Prof. Cesar A. Tacla 10
R = e21 e11 e31 e12 e32 e33 e13 e34 e22 e14 e23 e35 e15 e16 e36
Sist. Distrib. II - Prof. Cesar A. Tacla 11 Sist. Distrib. II - Prof. Cesar A. Tacla 12
2
Estados Globais: exercício Estados globais
X=10 • Monitoração
P1 | | | | – Determinar o estado do sistema do seu interior
– Pode necessitar de um processo extra
Y=4 Y=5
• P0 = processo monitor
P2 | | | | |
– P0 envia mensagens para os outros solicitando seus estados
Z=3 Z=6 – A partir das respostas, P0 constrói o estado global
P3 | | | |
Sist. Distrib. II - Prof. Cesar A. Tacla 13 Sist. Distrib. II - Prof. Cesar A. Tacla 14
Monitor construiu
uma observação não
consistente!
Sist. Distrib. II - Prof. Cesar A. Tacla 15 Sist. Distrib. II - Prof. Cesar A. Tacla 16
Sist. Distrib. II - Prof. Cesar A. Tacla 17 Sist. Distrib. II - Prof. Cesar A. Tacla 18
3
Estados globais Estados Globais: grafo
e1 e2 ei-1 ei
Σ0 → Σ1 → … → Σi -1 → Σi → …
Sist. Distrib. II - Prof. Cesar A. Tacla 19 Sist. Distrib. II - Prof. Cesar A. Tacla 20
Sist. Distrib. II - Prof. Cesar A. Tacla 21 Sist. Distrib. II - Prof. Cesar A. Tacla 22
Alcançabilidade
Σ2,2 {x=4, y=3} 4
a b c d
p1 | | | |
Σ2,0 é alcançável a partir de Σ1,0
Σ2,0 não é alcançável a partir de Σ0,1
Σ2,3 {x=4, y=2} 5
p2 | | |
e f g
Sist. Distrib. II - Prof. Cesar A. Tacla 23 Sist. Distrib. II - Prof. Cesar A. Tacla 24
4
Estados globais Estados globais
Sist. Distrib. II - Prof. Cesar A. Tacla 25 Sist. Distrib. II - Prof. Cesar A. Tacla 26
Sist. Distrib. II - Prof. Cesar A. Tacla 27 Sist. Distrib. II - Prof. Cesar A. Tacla 28
Σ2,1 {x=4}
A relação inversa não é verdadeira
Definitivamente (~Φ) ~Possivelmente(Φ)
Ex: Definitivamente(x≤10) é verdadeiro então possivelmente(x>10) é
falso
Sist. Distrib. II - Prof. Cesar A. Tacla 29 Sist. Distrib. II - Prof. Cesar A. Tacla 30
5
Estados globais Estados globais
Sist. Distrib. II - Prof. Cesar A. Tacla 31 Sist. Distrib. II - Prof. Cesar A. Tacla 32
b) Processo Q recebe um marker pela primeira vez e grava seu estado local e põe um
marker em cada um dos canais de saída
c) Q grava todas as mensagens de entrada (provenientes de processos diferentes
daquele que enviou o primeiro marker)
a) Processo Q com um canal de entrada e dois de saída
d) Q recebe um segundo marker e pára de gravar o estado para o canal de entrada
(somente para o canal por onde veio o marker)
Sist. Distrib. II - Prof. Cesar A. Tacla 33 Sist. Distrib. II - Prof. Cesar A. Tacla 34
6
Estados globais Estados globais
Algoritmo snapshot Chandy-Lamport
• Hipóteses para este protocolo
– Não há falha dos canais de comunicação nem dos processos 1. O processo iniciador age como se tivesse recebido um marker de um canal inexistente
– Comunicação confiável: toda msg enviada é recebida uma só e aplica a regra do recebimento
vez intacta
2. Regra do recebimento: processo pi recebe um marker pelo canal c
– Canais são unidirecionais com entrega FIFO • Se pi ainda não gravou seu estado
• Comunicação entre pi e pj satisfaz entrega FIFO se • pi grava seu estado
send(a, pj) → send(b, pj) deliverj(a) → deliverj(b) • salva definitivamente o estado de canal c como vazio
• Inicia gravação das msgs que chegam pelos outros canais de entrada (diferentes de c)
– O grafo de processos e canais é fortemente conectado (sempre • Senão (segundo marker)
existe um caminho entre dois processos) • Pi salva o estado de c como sendo o cjto das msgs vindas pelo canal c desde que pi salvou seu estado
Sist. Distrib. II - Prof. Cesar A. Tacla 37 Sist. Distrib. II - Prof. Cesar A. Tacla 38
Sist. Distrib. II - Prof. Cesar A. Tacla 41 Sist. Distrib. II - Prof. Cesar A. Tacla 42
7
Estados globais Estados globais
Exercício
Dois processos p e q trocam mensagens
como indicado no diagrama. Qual o
• Logo, snapshot distribuído pode ser utilizado para: estado global determinado pelo algoritmo
snapshot?
– Verificar se o sistema entrou em deadlock (ou outro predicado Mensagem MARKER
estável, ex. término de algoritmo)
Mensagem aplicação
snapshot
– No melhor dos casos para predicados instáveis, podemos
Inicio
verificar se alguma condição de segurança foi possivelmente
xp=101 xp=103 xp=104
violada.
b = -1
p2 | |b = 13 – O processo monitor constrói um estado global consistente a
partir dos estados locais recebidos
Sist. Distrib. II - Prof. Cesar A. Tacla 45 Sist. Distrib. II - Prof. Cesar A. Tacla 46
8
Estados globais Estados globais
!
• O monitor observa a seguinte condição para montar um estado
global consistente:
monitor
σ1 [1,0] Para cada processo i
σ1 [2,0] Para cada processo j (i ≠ j)
a b
p1 | |
σi)[i] ≥ V(σ
V(σ σj)[i]
σ2 [2,1] σi)[i] =
V(σ "#
p2 |
c
• Esta condição é útil no algoritmo que monta o grafo de estados
globais para saber quais mensagens de estado podem ser
Do ponto de vista do monitor, p2 percebeu mais eventos de p1 do que
utilizadas
realmente ocorreram (2 contra 1), logo falta uma mensagem
Sist. Distrib. II - Prof. Cesar A. Tacla 51 Sist. Distrib. II - Prof. Cesar A. Tacla 52
p2 Physical p2 Physical
time time
x2 = 100 x2 = 95 x2 = 90 x2 = 100 x2 = 95 x2 = 90
(2,1) (2,2) (2,3) (2,1) (2,2) (2,3)
Exemplo:
Exemplo:
Exemplo: X1 = 90 V(σ1)= [4,3]
XX11 == 105
105 V(σ
V(σ11)=
)= [3,0]
[3,0] X2 = 95 V(σ2)= [2,2]
XX22 == 90
90 V(σ
V(σ22)=
)= [2,3]
[2,3]
Σ(σ1, σ2) é consistente?
Σ(σ1,
Σ(σ1, σ2)
σ2) éé consistente?
consistente? Sim, pois 33 ≥≥ 22 ee 33 ≥≥ 00
Sim, pois
9
Estados globais
• Exercício
– Supondo as filas Q de um processo monitor ilustradas abaixo,
em quais dos casos o monitor poderia utilizar as mensagens de
estado para montar um estado global consistente
a) Q1=[2 2] Q2=[4 2]
10