RELÓGIOS LÓGICOS
SISTEMAS DISTRIBUÍDOS
AFRAP – Associação Faculdade de Ribeirão Preto
2015
Grupo:
Paulo Roberto Bologna Júnior
Paulo Henrique Monteiro
Afrânio Souza Júnior
Vinicius Nunes
Sergio Almeida
Sistemas Distribuídos - Relógios Lógicos
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
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
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
• 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
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.
RELÓGIOS DE LAMPORT
(RELAÇÃO ACONTECE-ANTES: → )
11:37:03 Sistemas Distribuídos - Relógios Lógicos 8
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
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
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
COMO FUNCIONA?
11:37:03 Sistemas Distribuídos - Relógios Lógicos 12
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
• 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
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
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
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
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
NÃO HÁ DUVIDAS?
11:37:03 Sistemas Distribuídos - Relógios Lógicos Fim enfim!
BIBLIOGRAFIA
Tanenbaum, Adrew S 1944 -
Sistemas distribuídos: princípios e paradigmas / Andrew S. Tanenbaum.
Maarten van Steen: [tradutora Arlete Simile Marques: revisor Técnico Wagner Zucchi].
2. ed. - São Paulo: Pearson Prentice Hall. 2007.
pág 147-152 – Relógios Lógicos
11:37:05 Sistemas Distribuídos - Relógios Lógicos 20

Relógios lógicos

  • 1.
    RELÓGIOS LÓGICOS SISTEMAS DISTRIBUÍDOS AFRAP– Associação Faculdade de Ribeirão Preto 2015
  • 2.
    Grupo: Paulo Roberto BolognaJúnior Paulo Henrique Monteiro Afrânio Souza Júnior Vinicius Nunes Sergio Almeida Sistemas Distribuídos - Relógios Lógicos
  • 3.
    RELÓGIOS LÓGICOS • Mecanismospara 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 DELAMPORT (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 mecanismodos 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.
  • 8.
    RELÓGIOS DE LAMPORT (RELAÇÃOACONTECE-ANTES: → ) 11:37:03 Sistemas Distribuídos - Relógios Lógicos 8
  • 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 é realizadoantes 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 • OsReló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
  • 12.
    COMO FUNCIONA? 11:37:03 SistemasDistribuídos - Relógios Lógicos 12
  • 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 esseesquema 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 notamosque 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 ORDENADADE 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
  • 19.
    NÃO HÁ DUVIDAS? 11:37:03Sistemas Distribuídos - Relógios Lógicos Fim enfim!
  • 20.
    BIBLIOGRAFIA Tanenbaum, Adrew S1944 - Sistemas distribuídos: princípios e paradigmas / Andrew S. Tanenbaum. Maarten van Steen: [tradutora Arlete Simile Marques: revisor Técnico Wagner Zucchi]. 2. ed. - São Paulo: Pearson Prentice Hall. 2007. pág 147-152 – Relógios Lógicos 11:37:05 Sistemas Distribuídos - Relógios Lógicos 20