SlideShare uma empresa Scribd logo
1 de 20
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

Mais conteúdo relacionado

Mais procurados

Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoAdriano Teixeira de Souza
 
Introdução a Sistemas Distribuídos
Introdução a Sistemas DistribuídosIntrodução a Sistemas Distribuídos
Introdução a Sistemas DistribuídosVictor Hazin da Rocha
 
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!Matheus Espanhol
 
Análise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contextoAnálise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contextoLuciano Almeida
 
Modelo de especificação de caso de uso
Modelo de especificação de caso de usoModelo de especificação de caso de uso
Modelo de especificação de caso de usoLeandro Rodrigues
 
Aula 04 ferramentas para autoria de produtos multimídia i
Aula 04   ferramentas para autoria de produtos multimídia iAula 04   ferramentas para autoria de produtos multimídia i
Aula 04 ferramentas para autoria de produtos multimídia iFábio Costa
 
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesSistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesAdriano Teixeira de Souza
 
Security in distributed systems
Security in distributed systems Security in distributed systems
Security in distributed systems Haitham Ahmed
 
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLRildo (@rildosan) Santos
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosMessias Batista
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosUFPB
 
Introdução à Virtualização
Introdução à VirtualizaçãoIntrodução à Virtualização
Introdução à VirtualizaçãoLucas Miranda
 
Condições de corrida e regiões críticas
Condições de corrida e regiões críticasCondições de corrida e regiões críticas
Condições de corrida e regiões críticasBeatriz Rodrigues
 

Mais procurados (20)

Servidor Proxy Squid
Servidor Proxy SquidServidor Proxy Squid
Servidor Proxy Squid
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
 
Introdução a Sistemas Distribuídos
Introdução a Sistemas DistribuídosIntrodução a Sistemas Distribuídos
Introdução a Sistemas Distribuídos
 
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!
Escalabilidade, Sharding, Paralelismo e Bigdata com PostgreSQL? Yes, we can!
 
Análise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contextoAnálise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contexto
 
Modelo de especificação de caso de uso
Modelo de especificação de caso de usoModelo de especificação de caso de uso
Modelo de especificação de caso de uso
 
Aula 04 ferramentas para autoria de produtos multimídia i
Aula 04   ferramentas para autoria de produtos multimídia iAula 04   ferramentas para autoria de produtos multimídia i
Aula 04 ferramentas para autoria de produtos multimídia i
 
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesSistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web Services
 
Aula - Roteamento.pdf
Aula - Roteamento.pdfAula - Roteamento.pdf
Aula - Roteamento.pdf
 
Elicitação e Análise
Elicitação e AnáliseElicitação e Análise
Elicitação e Análise
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Security in distributed systems
Security in distributed systems Security in distributed systems
Security in distributed systems
 
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UML
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - Processos
 
Middleware
MiddlewareMiddleware
Middleware
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidos
 
Introdução à Virtualização
Introdução à VirtualizaçãoIntrodução à Virtualização
Introdução à Virtualização
 
Atividade acl extendida
Atividade acl extendidaAtividade acl extendida
Atividade acl extendida
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 
Condições de corrida e regiões críticas
Condições de corrida e regiões críticasCondições de corrida e regiões críticas
Condições de corrida e regiões críticas
 

Semelhante a Relógios lógicos

Semelhante a Relógios lógicos (17)

Relógios Lógicos
Relógios LógicosRelógios Lógicos
Relógios Lógicos
 
Sd05 (si) relógios e sincronização
Sd05 (si)   relógios e sincronizaçãoSd05 (si)   relógios e sincronização
Sd05 (si) relógios e sincronização
 
Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
 
SincronizacaoDist.pdf
SincronizacaoDist.pdfSincronizacaoDist.pdf
SincronizacaoDist.pdf
 
Lamport
LamportLamport
Lamport
 
Redes de Computadores Capítulo 3 - Camada de Enlace
Redes de Computadores Capítulo 3 - Camada de EnlaceRedes de Computadores Capítulo 3 - Camada de Enlace
Redes de Computadores Capítulo 3 - Camada de Enlace
 
31283575 protocolos-de-transporte-tcp-e-udp
31283575 protocolos-de-transporte-tcp-e-udp31283575 protocolos-de-transporte-tcp-e-udp
31283575 protocolos-de-transporte-tcp-e-udp
 
Aula Simulação por Eventos Discretos
Aula Simulação por Eventos DiscretosAula Simulação por Eventos Discretos
Aula Simulação por Eventos Discretos
 
Processador mips - parte operativa e parte de controle
Processador mips - parte operativa e parte de controleProcessador mips - parte operativa e parte de controle
Processador mips - parte operativa e parte de controle
 
Canais Assíncronos II - Aplicações
Canais Assíncronos II - AplicaçõesCanais Assíncronos II - Aplicações
Canais Assíncronos II - Aplicações
 
Sd04 (si) comunicação em sd
Sd04 (si)   comunicação em sdSd04 (si)   comunicação em sd
Sd04 (si) comunicação em sd
 
Aula 3
Aula   3Aula   3
Aula 3
 
Modelo osi tcp ip e protocolos
Modelo osi tcp ip e protocolosModelo osi tcp ip e protocolos
Modelo osi tcp ip e protocolos
 
Ntp 1-cp2011
Ntp 1-cp2011Ntp 1-cp2011
Ntp 1-cp2011
 
Downloads telecom com_dados_exercicios_exercicio_parte 1 geral
Downloads telecom com_dados_exercicios_exercicio_parte 1 geralDownloads telecom com_dados_exercicios_exercicio_parte 1 geral
Downloads telecom com_dados_exercicios_exercicio_parte 1 geral
 
Lista04
Lista04Lista04
Lista04
 
Exercicio parte1
Exercicio parte1Exercicio parte1
Exercicio parte1
 

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 Bologna Jú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 • 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.
  • 8. RELÓGIOS DE LAMPORT (RELAÇÃO ACONTECE-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 é 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
  • 12. COMO FUNCIONA? 11:37:03 Sistemas Distribuí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 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
  • 19. NÃO HÁ DUVIDAS? 11:37:03 Sistemas Distribuídos - Relógios Lógicos Fim enfim!
  • 20. 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