O documento discute relógios lógicos em sistemas distribuídos, incluindo relógios de Lamport e relógios vetoriais. Relógios lógicos são usados para identificar relações causais e cronológicas em sistemas distribuídos através da sincronização de eventos e consistência interna de relógios. Relógios de Lamport são baseados na relação "acontece antes" de Lamport, enquanto relógios vetoriais podem decidir causalidade entre eventos.
3. RELÓGIOS LÓGICOS
• Mecanismos para identificação de relações
causais e cronológicas em distribuídos, uma vez
que estes fazem uso de uma classe de algoritmos
que têm como base a sincronização de seus
eventos e a consistência interna de seus relógios.
• Principais algoritmos para sincronização de
relógios:
– Relógios de Lamport
– Relógios Vetoriais
11:37:04 Sistemas Distribuídos - Relógios Lógicos 3
4. RELÓGIOS LÓGICOS DE LAMPORT
(1978)
• O que são?
– São mecanismos usados em algoritmos de sincronização de relógios
baseados na relação acontece-antes definida por Lamport
• Características:
– Os processos executam em máquinas diferentes, cada uma com seu
clock.
– Cada mensagem leva o valor do clock (relógio) do transmissor.
– Se a mensagem traz um tempo superior ao do receptor, este adianta
seu clock em uma unidade maior que o tempo recebido.
– Os tempos associados aos eventos não são necessariamente próximos
ao tempo real.
– Os processos não precisam estar de acordo sobre o valor exato do
tempo, mas sobre a ordem em que os eventos ocorrem.
11:37:04 Sistemas Distribuídos - Relógios Lógicos 4
5. RELAÇÃO ACONTECE-ANTES ( → )
• Se “a” e “b” são eventos dentro do mesmo
processo e se o evento “a” acontece antes do “b”
então: a→b, assim como C(a) < C(b)
*C representa o tempo do respectivo relógio (C = Clock)
• Se “a” é o envio de uma mensagem para um
processo e se “b” é a recepção desta mensagem
por outro processo, então devem ser atribuídos
valores a C(a) e C(b) de maneira que C(a) < C (b)
*C representa o tempo do respectivo relógio (C = Clock)
• A relação acontece-antes é transitiva, ou seja: se
a→b e b→c, então a→c
11:37:04 Sistemas Distribuídos - Relógios Lógicos 5
6. • No entanto, se “a” e “b” são processos diferentes sem a
existência de cadeias de mensagens entre os processos:
– a || b - “a” e “b” são processos concorrentes, portanto não existe
relação “→“
– Em processos concorrentes, não é possível inferir que a→b ou b→a
11:37:03 Sistemas Distribuídos - Relógios Lógicos 6
7. Detalhamento do mecanismo dos Relógios Lógicos de Lamport
11:37:03 Sistemas Distribuídos - Relógios Lógicos 7
Ci é incrementado de 1 antes de cada evento.
C1 no evento a = 1
C1 no evento b = 2
P2 recebe a mensagem “m1” que contém (m,t) sendo (t = C1). C2, após
evento c, recebe “max (C2,t)+1” que nesse caso é max (0,2)+1 = 3.
a || e , ou seja, não se pode determinar / é ignorado se a→ e ou se e→ a.
9. MULTICAST TOTALMENTE ORDENADO
• Multicast é a entrega de informação para
múltiplos destinatários simultaneamente.
• Os relógios lógicos de Lamport podem ser usados
• Quando uma mensagem é enviada em multicast,
ela é conceitualmente também enviada ao
remetente.
• Um processo só pode entregar uma mensagem
enfileirada à aplicação
11:37:03 Sistemas Distribuídos - Relógios Lógicos 9
10. Update 1 é
realizado antes
do Update 2
Bando de dados
replicado
Update 2 é
realizado antes
do Update 1
11:37:03 Sistemas Distribuídos - Relógios Lógicos 10
11. RELÓGIOS VETORIAIS
• Os Relógios vetoriais são mecanismos usados
em algoritmos de sistemas distribuídos que se
baseiam na ordenação de eventos.
• Os relógios vetoriais são capazes de decidir se
há causalidade entre os eventos,
diferentemente dos relógios de Lamport.
11:37:03 Sistemas Distribuídos - Relógios Lógicos 11
13. IMPOSICAO DE COMUNICAÇÃO
VISUAL
• Com o uso de relógios vetoriais, é possível garantir que
uma mensagem seja entregue somente se todas as
demais mensagens que a precederem por causalidade
também tenham sido recebidas.
• Para que tal função seja habilitada consideraremos
que as mensagens são transmitidas em multicast
dentro de um grupo de processos (tendo em vista que
o multicast ordenado por causalidade é mais fraco que
o multicast totalmente ordenado).
11:37:04 Sistemas Distribuídos - Relógios Lógicos 13
14. • Utilizando esse esquema consideramos que se
duas mensagens não estiverem relacionadas
uma com a outra de modo nenhum, não
importara a ordem em que elas sejam
entregues.
• Consideramos também que os relógios
somente serão ajustados quando enviam e
recebem mensagens.
11:37:04 Sistemas Distribuídos - Relógios Lógicos 14
15. Em particular notamos que ao enviar uma
mensagem, o processo P, só incrementara VC;{I}
DE 1, já ao receber uma mensagem m com
marca de tempo ts(m), ele só ajustara VC;[k]
para max {VC;[K] , ts(m)[k]}.
Agora supondo que P, receba de P. uma
mensagem m com marca de tempo (vetorial)
ts(m), a mensagem só será entregue quando as
seguintes condições sejam cumpridas
11:37:04 Sistemas Distribuídos - Relógios Lógicos 15
16. 1 – ts(m)[i] = VC;[I]+1 (nesta condição afirmamos que m é a
próxima mensagem que P, estava esperando do processo P)
2 – ts(m)[k] ≤ VC;[k] para todo k≠i (nesta condição afirmamos
que P, viu todas as mensagem que foram vistas por P, quando
este enviou a mensagem m.
11:37:03 Sistemas Distribuídos - Relógios Lógicos 16
17. OBSERVAÇÃO SOBRE ENTREGA
ORDENADA DE MENSAGENS
• Alguns sistemas de middleware fornecem
suporte para multicast totalmente ordenado e
multicast ordenado por causalidade
• Como o middleware não pode dizer o que
uma mensagem realmente contem, só é
possível capturar causalidade potencial
• O segundo problema é que nem toda
causalidade pode ser capturada.
11:37:03 Sistemas Distribuídos - Relógios Lógicos 17
18. QUESTÕES DE ORDENAÇÃO
• Assim como questões de comunicação
especificas de aplicação, podem ser
adequadamente resolvidas ao examinar a
aplicação com a qual esta correndo a
comunicação de mensagens, isso é conhecido
como argumento fim-a-fim em projeto de
sistemas.
• Uma desvantagem de ter somente soluções no
nível de aplicação é que um desenvolvedor tende
a se concentrar somente em questões
11:37:03 Sistemas Distribuídos - Relógios Lógicos 18