SlideShare uma empresa Scribd logo
1 de 30
SISTEMAS
DISTRIBUÍDOS
TEMPO, RELÓGIO E
SINCRONIZAÇÃO DE TEMPO
ARTHUR EMANUEL DE OLIVEIRA
CAROSIA
1
ROTEIRO
Introdução
Relógios, eventos e estados de processo
Sincronização de Tempo em Sistemas Distribuídos
2
ROTEIRO
Introdução
Relógios, eventos e estados de processo
Sincronização de Tempo em Sistemas Distribuídos
3
INTRODUÇÃO
• Em sistemas centralizados o tempo não é ambíguo
• Núcleo do SO informa tempo aos processos
• P1 solicita hora
• P2 solicita hora depois de P1
• tempo(P2) >= tempo(P1)
• Em SDs, cada máquina tem sua própria percepção do
tempo
• P1 no host1, P2 no host2 se comunicam em ambiente com
potencial diferença de tempo
• Não há noção de tempo global
4
INTRODUÇÃO
• Porque sincronizar os relógios em um sistema distribuído?
• Monitorar sistemas distribuídos à medida em que a sua
execução se desenrola;
• Saber o momento exato em que eventos ocorrem,
• ex.: para auditoria em transações bancárias.
• Sincronização externa:
• sincronizar os processos com uma fonte de tempo externa de
referência.
• Sincronização interna:
• relógios de diferentes computadores são sincronizados com
grau de precisão conhecido.
5
ROTEIRO
Introdução
Relógios, eventos e estados de processo
Sincronização de Tempo em Sistemas Distribuídos
6
RELÓGIOS FÍSICOS
Temporizador
•Cristal de quartzo lapidado e usinado com precisão
• Oscilam a frequências bem-definidas sob pressão
• Associados ao cristal:
• Contador
• Registrador de retenção
• Uma oscilação = uma unidade de contagem
• Contador = 0
• gera uma interrupção e o contador é recarregado pelo
registrador de retenção
• A interrupção é denominada clock do relógio
7
TEMPO EM SISTEMAS
DISTRIBUÍDOS
• CPU’s múltiplas, cada uma com seu próprio relógio
• Frequência de cada oscilador cristal é normalmente estável,
no entanto:
• Impossível garantir que todos os cristais funcionem na
mesma frequência
• Cristais, funcionando a taxas ligeiramente diferentes
• Relógios fora de sincronia
• Problema da defasagem do relógio
8
PROBLEMAS DE
TEMPORIZAÇÃO
• Como sincronizar os relógios com o mundo real?
• Como sincronizar os relógios um com o outro em um
sistema distribuído?
9
MEDIÇÃO DE TEMPO
• Invenção dos relógios: séc. XVII
• Tempo medido por meios astronômicos
• Todo dia o Sol nasce no leste e se põe no oeste
• Zênite é o ponto mais alto no céu alcançado pelo Sol
• Passagem do Sol pelo zênite chama-se: trânsito solar
• Trânsito solar ocorre aproximadamente ao meio-dia
• Intervalo de dois trânsitos solares é um dia solar
• Segundo solar= 1/86400 avos de um dia solar
10
MEDIÇÃO DE TEMPO
11
MEDIÇÃO DE TEMPO
• O relógio atômico
• Surgido em 1948
• Mede o tempo com mais exatidão, independente dos
movimentos da Terra
• Baseado nas transições do átomo de Césio 133
• Um segundo = “9.192.631.770 ciclos de radiação
correspondente a transição entre dois níveis de energia do
átomo de césio-133, no estado fundamental”
• 1 Segundo atômico = 1 segundo solar médio do ano de
medição
• Usado para gerar o Tempo Atômico Internacional (TAI)
12
MEDIÇÃO DE TEMPO
• Resumo
• Medição do tempo baseado em segundos TAI (Tempo
Atômico Internacional) constantes
• Em fase com o movimento aparente do Sol
• Hora Coordenada Universal (UTC)
• UTC substitui o GMT (hora astronômica)
• National Institute of Standard, em Colorado/USA
• Time opera estações de ondas de rádio WWV para informar o
tempo UTC
13
ROTEIRO
Introdução
Relógios, eventos e estados de processo
Sincronização de Tempo em Sistemas Distribuídos
14
SINCRONIZAÇÃO DE
TEMPO EM SISTEMAS
DISTRIBUÍDOS
• Se uma máquina tem um receptor WWV,
• Deve-se manter as demais sincronizadas com o tempo real
• Se não possui receptor WWV,
• Deve-se manter o tempo o mais próximo possível.
15
SINCRONIZAÇÃO EM
SISTEMAS DISTRIBUÍDOS
• Problemas
• Processos localizados em sistemas computacionais
diferentes
• Atrasos decorrente do tempo de rede
• Há casos com diferencial de fuso horário
16
SINCRONIZAÇÃO EM
SISTEMAS DISTRIBUÍDOS
• Há um relógio que define o tempo comumente aceitado e
pré-acordado
• “C”é o valor do relógio
• “p”é uma dada máquina
• “t”é hora UTC
• tempo na máquina p é Cp(t)
• Ideal
• R’p(t) = dC/dt = 1
17
SINCRONIZAÇÃO EM
SISTEMAS DISTRIBUÍDOS
• Temporizadores
• Temporizadores reais não interrompem exatamente H vezes
por segundo
• Teoricamente, um temporizador H=60 deve gerar 216.000
ciclos por hora
• O erro relativo de modernos chips estão em 10-5
18
SINCRONIZAÇÃO EM
SISTEMAS DISTRIBUÍDOS
Relação entre a hora do relógio e a hora UTC quando as
taxas de ciclos de relógios são diferentes
19
SINCRONIZAÇÃO EM
SISTEMAS DISTRIBUÍDOS
• Algoritmos de sincronização de tempo
• Algoritmo de Cristian
• Algoritmo de Berkeley
• Algoritmo de Lamport
20
ALGORITMO DE
CRISTIAN
• Idéia geral
• Clientes consultam um servidor de tempo com hora exata
(WWV)
• Hora fornecida enfrenta problema de atraso de atualização
(demora para receber de volta a resposta)
•Solução
• Estimar atrasos
21
ALGORITMO DE
CRISTIAN
22
ALGORITMO DE
BERKELEY
• Um daemon de tempo pergunta para todas as outras máquinas
os valores marcados por seus relógios.
• As máquinas respondem.
• O daemon de tempo informa a todas as máquinas como devem
ajustar seus relógios.
23
RELÓGIOS FÍSICOS
• Para muitas finalidades é suficiente que todas as máquinas
concordem em uma hora.
• Só para algumas finalidades é necessário que a hora acordada
seja idêntica ao tempo real.
24
RELÓGIOS LÓGICOS
DE LAMPORT
• Mecanismos para identificação de relações causais e
cronológicas em sistemas distribuídos
• Cada processo mantém um relógio lógico, que não
necessariamente precisa ter relação com um relógio físico.
• Os processos atualizam seus relógios lógicos e transmitem
valores de seus relógios lógicos em mensagens.
• Princípio de Lamport (1978)
• Processos do sistema não precisam concordar na hora atual,
mas sim na ordem em que os eventos ocorrem
• Relógios do sistema não precisam estar sincronizados se os
processos não interagem
• Relógios são sincronizados para frente, nunca para trás
25
RELÓGIOS LÓGICOS
DE LAMPORT
• Para sincronizar relógios lógicos Lamport definiu:
• Relação “acontece antes”
• Notação: a →b é lida como “a acontece antes de b”
• A relação é transitiva:
• se a →b
• b →c,
• então a →c
• Se a →b, então C(a) < C(b)
• Se dois processos diferentes x e y não trocam mensagens
• x →y e y →x não são verdadeiros
26
RELÓGIOS LÓGICOS
DE LAMPORT
Relógio lógico de Lamport em sistemas distribuídos.
27
RELÓGIOS LÓGICOS
DE LAMPORT
Cada processo Pi mantém um contador Ci
• Antes de executar um evento Pi executa Ci = Ci + 1.
• Quando um processo Pi envia uma mensagem m para Pj, ele ajusta
a marca de tempo de m, ts (m) para igual a Ci após ter executado a
etapa anterior.
• Ao receber a mensagem m, o processos Pj ajusta seu próprio
contador local para Cj = max{Cj, ts (m)}, e depois disto executa a
primeira etapa e entrega a mensagem à aplicação
28
RELÓGIOS LÓGICOS
DE LAMPORT
Três processos, cada um com seu próprio relógio.
Os relógios funcionam a taxas diferentes.
29
SISTEMAS
DISTRIBUÍDOS
TEMPO, RELÓGIO E
SINCRONIZAÇÃO DE TEMPO
ARTHUR EMANUEL DE OLIVEIRA
CAROSIA
30

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 Projeto
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids Computacionais
Adriano Teixeira de Souza
 
Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,
H P
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processos
Talles Nascimento Rodrigues
 
Rpc (Distributed computing)
Rpc (Distributed computing)Rpc (Distributed computing)
Rpc (Distributed computing)
Sri Prasanna
 

Mais procurados (20)

Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids Computacionais
 
Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - Processos
 
Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,Endereços de ip, tipos de endereços,
Endereços de ip, tipos de endereços,
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Coordination and Agreement .ppt
Coordination and Agreement .pptCoordination and Agreement .ppt
Coordination and Agreement .ppt
 
Aula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasAula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a Falhas
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processos
 
TCP/IP
TCP/IPTCP/IP
TCP/IP
 
Rpc (Distributed computing)
Rpc (Distributed computing)Rpc (Distributed computing)
Rpc (Distributed computing)
 
Protocolos de Redes
Protocolos de RedesProtocolos de Redes
Protocolos de Redes
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas Distribuídos
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
Distributed Systems Introduction and Importance
Distributed Systems Introduction and Importance Distributed Systems Introduction and Importance
Distributed Systems Introduction and Importance
 
Componentes de Sistemas de Comunicação
Componentes de Sistemas de ComunicaçãoComponentes de Sistemas de Comunicação
Componentes de Sistemas de Comunicação
 

Destaque

Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCSistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOA
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - Socket
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Adriano Teixeira de Souza
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidos
robsons75
 

Destaque (20)

Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBA
 
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCSistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
 
Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOA
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos Web
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - Socket
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00
 
Sistemas De Arquivos Distribuídos (SAD)
Sistemas De Arquivos Distribuídos (SAD)Sistemas De Arquivos Distribuídos (SAD)
Sistemas De Arquivos Distribuídos (SAD)
 
Sistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosSistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de Dados
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – Middleware
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidos
 
Sistemas Distribuídos - Clusters
Sistemas Distribuídos - ClustersSistemas Distribuídos - Clusters
Sistemas Distribuídos - Clusters
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 
Processamento paralelo
Processamento paraleloProcessamento paralelo
Processamento paralelo
 

Semelhante a Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo (7)

Ntp 1-cp2011
Ntp 1-cp2011Ntp 1-cp2011
Ntp 1-cp2011
 
Arquitetura de Computadores
Arquitetura de ComputadoresArquitetura de Computadores
Arquitetura de Computadores
 
Relógios Lógicos
Relógios LógicosRelógios Lógicos
Relógios Lógicos
 
Clock
ClockClock
Clock
 
Fl os relógios
Fl   os relógiosFl   os relógios
Fl os relógios
 
SincronizacaoDist.pdf
SincronizacaoDist.pdfSincronizacaoDist.pdf
SincronizacaoDist.pdf
 
Flip Flops Parte 3
Flip Flops Parte 3Flip Flops Parte 3
Flip Flops Parte 3
 

Mais de Arthur Emanuel

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Arthur Emanuel
 

Mais de Arthur Emanuel (20)

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Orientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosOrientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - Exercícios
 
Android - Integração com Facebook
Android - Integração com FacebookAndroid - Integração com Facebook
Android - Integração com Facebook
 
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaDesenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
 
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuAula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
 
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomAula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
 
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoAula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
 
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosAula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
 
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoAula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
 
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoAula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - Exercício
 
CSS 3
CSS 3CSS 3
CSS 3
 
CSS
CSSCSS
CSS
 
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
 
HTML - Introducao
HTML - Introducao HTML - Introducao
HTML - Introducao
 
Android - Google Maps
Android - Google MapsAndroid - Google Maps
Android - Google Maps
 
Android - Bluetooth
Android - BluetoothAndroid - Bluetooth
Android - Bluetooth
 
Android - Acelerometro e GPS
Android - Acelerometro e GPSAndroid - Acelerometro e GPS
Android - Acelerometro e GPS
 
Android - Consumindo Webservices
Android - Consumindo WebservicesAndroid - Consumindo Webservices
Android - Consumindo Webservices
 

Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo

  • 1. SISTEMAS DISTRIBUÍDOS TEMPO, RELÓGIO E SINCRONIZAÇÃO DE TEMPO ARTHUR EMANUEL DE OLIVEIRA CAROSIA 1
  • 2. ROTEIRO Introdução Relógios, eventos e estados de processo Sincronização de Tempo em Sistemas Distribuídos 2
  • 3. ROTEIRO Introdução Relógios, eventos e estados de processo Sincronização de Tempo em Sistemas Distribuídos 3
  • 4. INTRODUÇÃO • Em sistemas centralizados o tempo não é ambíguo • Núcleo do SO informa tempo aos processos • P1 solicita hora • P2 solicita hora depois de P1 • tempo(P2) >= tempo(P1) • Em SDs, cada máquina tem sua própria percepção do tempo • P1 no host1, P2 no host2 se comunicam em ambiente com potencial diferença de tempo • Não há noção de tempo global 4
  • 5. INTRODUÇÃO • Porque sincronizar os relógios em um sistema distribuído? • Monitorar sistemas distribuídos à medida em que a sua execução se desenrola; • Saber o momento exato em que eventos ocorrem, • ex.: para auditoria em transações bancárias. • Sincronização externa: • sincronizar os processos com uma fonte de tempo externa de referência. • Sincronização interna: • relógios de diferentes computadores são sincronizados com grau de precisão conhecido. 5
  • 6. ROTEIRO Introdução Relógios, eventos e estados de processo Sincronização de Tempo em Sistemas Distribuídos 6
  • 7. RELÓGIOS FÍSICOS Temporizador •Cristal de quartzo lapidado e usinado com precisão • Oscilam a frequências bem-definidas sob pressão • Associados ao cristal: • Contador • Registrador de retenção • Uma oscilação = uma unidade de contagem • Contador = 0 • gera uma interrupção e o contador é recarregado pelo registrador de retenção • A interrupção é denominada clock do relógio 7
  • 8. TEMPO EM SISTEMAS DISTRIBUÍDOS • CPU’s múltiplas, cada uma com seu próprio relógio • Frequência de cada oscilador cristal é normalmente estável, no entanto: • Impossível garantir que todos os cristais funcionem na mesma frequência • Cristais, funcionando a taxas ligeiramente diferentes • Relógios fora de sincronia • Problema da defasagem do relógio 8
  • 9. PROBLEMAS DE TEMPORIZAÇÃO • Como sincronizar os relógios com o mundo real? • Como sincronizar os relógios um com o outro em um sistema distribuído? 9
  • 10. MEDIÇÃO DE TEMPO • Invenção dos relógios: séc. XVII • Tempo medido por meios astronômicos • Todo dia o Sol nasce no leste e se põe no oeste • Zênite é o ponto mais alto no céu alcançado pelo Sol • Passagem do Sol pelo zênite chama-se: trânsito solar • Trânsito solar ocorre aproximadamente ao meio-dia • Intervalo de dois trânsitos solares é um dia solar • Segundo solar= 1/86400 avos de um dia solar 10
  • 12. MEDIÇÃO DE TEMPO • O relógio atômico • Surgido em 1948 • Mede o tempo com mais exatidão, independente dos movimentos da Terra • Baseado nas transições do átomo de Césio 133 • Um segundo = “9.192.631.770 ciclos de radiação correspondente a transição entre dois níveis de energia do átomo de césio-133, no estado fundamental” • 1 Segundo atômico = 1 segundo solar médio do ano de medição • Usado para gerar o Tempo Atômico Internacional (TAI) 12
  • 13. MEDIÇÃO DE TEMPO • Resumo • Medição do tempo baseado em segundos TAI (Tempo Atômico Internacional) constantes • Em fase com o movimento aparente do Sol • Hora Coordenada Universal (UTC) • UTC substitui o GMT (hora astronômica) • National Institute of Standard, em Colorado/USA • Time opera estações de ondas de rádio WWV para informar o tempo UTC 13
  • 14. ROTEIRO Introdução Relógios, eventos e estados de processo Sincronização de Tempo em Sistemas Distribuídos 14
  • 15. SINCRONIZAÇÃO DE TEMPO EM SISTEMAS DISTRIBUÍDOS • Se uma máquina tem um receptor WWV, • Deve-se manter as demais sincronizadas com o tempo real • Se não possui receptor WWV, • Deve-se manter o tempo o mais próximo possível. 15
  • 16. SINCRONIZAÇÃO EM SISTEMAS DISTRIBUÍDOS • Problemas • Processos localizados em sistemas computacionais diferentes • Atrasos decorrente do tempo de rede • Há casos com diferencial de fuso horário 16
  • 17. SINCRONIZAÇÃO EM SISTEMAS DISTRIBUÍDOS • Há um relógio que define o tempo comumente aceitado e pré-acordado • “C”é o valor do relógio • “p”é uma dada máquina • “t”é hora UTC • tempo na máquina p é Cp(t) • Ideal • R’p(t) = dC/dt = 1 17
  • 18. SINCRONIZAÇÃO EM SISTEMAS DISTRIBUÍDOS • Temporizadores • Temporizadores reais não interrompem exatamente H vezes por segundo • Teoricamente, um temporizador H=60 deve gerar 216.000 ciclos por hora • O erro relativo de modernos chips estão em 10-5 18
  • 19. SINCRONIZAÇÃO EM SISTEMAS DISTRIBUÍDOS Relação entre a hora do relógio e a hora UTC quando as taxas de ciclos de relógios são diferentes 19
  • 20. SINCRONIZAÇÃO EM SISTEMAS DISTRIBUÍDOS • Algoritmos de sincronização de tempo • Algoritmo de Cristian • Algoritmo de Berkeley • Algoritmo de Lamport 20
  • 21. ALGORITMO DE CRISTIAN • Idéia geral • Clientes consultam um servidor de tempo com hora exata (WWV) • Hora fornecida enfrenta problema de atraso de atualização (demora para receber de volta a resposta) •Solução • Estimar atrasos 21
  • 23. ALGORITMO DE BERKELEY • Um daemon de tempo pergunta para todas as outras máquinas os valores marcados por seus relógios. • As máquinas respondem. • O daemon de tempo informa a todas as máquinas como devem ajustar seus relógios. 23
  • 24. RELÓGIOS FÍSICOS • Para muitas finalidades é suficiente que todas as máquinas concordem em uma hora. • Só para algumas finalidades é necessário que a hora acordada seja idêntica ao tempo real. 24
  • 25. RELÓGIOS LÓGICOS DE LAMPORT • Mecanismos para identificação de relações causais e cronológicas em sistemas distribuídos • Cada processo mantém um relógio lógico, que não necessariamente precisa ter relação com um relógio físico. • Os processos atualizam seus relógios lógicos e transmitem valores de seus relógios lógicos em mensagens. • Princípio de Lamport (1978) • Processos do sistema não precisam concordar na hora atual, mas sim na ordem em que os eventos ocorrem • Relógios do sistema não precisam estar sincronizados se os processos não interagem • Relógios são sincronizados para frente, nunca para trás 25
  • 26. RELÓGIOS LÓGICOS DE LAMPORT • Para sincronizar relógios lógicos Lamport definiu: • Relação “acontece antes” • Notação: a →b é lida como “a acontece antes de b” • A relação é transitiva: • se a →b • b →c, • então a →c • Se a →b, então C(a) < C(b) • Se dois processos diferentes x e y não trocam mensagens • x →y e y →x não são verdadeiros 26
  • 27. RELÓGIOS LÓGICOS DE LAMPORT Relógio lógico de Lamport em sistemas distribuídos. 27
  • 28. RELÓGIOS LÓGICOS DE LAMPORT Cada processo Pi mantém um contador Ci • Antes de executar um evento Pi executa Ci = Ci + 1. • Quando um processo Pi envia uma mensagem m para Pj, ele ajusta a marca de tempo de m, ts (m) para igual a Ci após ter executado a etapa anterior. • Ao receber a mensagem m, o processos Pj ajusta seu próprio contador local para Cj = max{Cj, ts (m)}, e depois disto executa a primeira etapa e entrega a mensagem à aplicação 28
  • 29. RELÓGIOS LÓGICOS DE LAMPORT Três processos, cada um com seu próprio relógio. Os relógios funcionam a taxas diferentes. 29
  • 30. SISTEMAS DISTRIBUÍDOS TEMPO, RELÓGIO E SINCRONIZAÇÃO DE TEMPO ARTHUR EMANUEL DE OLIVEIRA CAROSIA 30