SISTEMAS DISTRIBUÍDOS TEMPO, RELÓGIO E SINCRONIZAÇÃO DE TEMPO ARTHUR EMANUEL DE OLIVEIRA CAROSIA 1
Jun 27, 2015
1
SISTEMAS DISTRIBUÍDOS
TEMPO, RELÓGIO E SINCRONIZAÇÃO DE TEMPO
ARTHUR EMANUEL DE OLIVEIRA CAROSIA
2
ROTEIRO
Introdução
Relógios, eventos e estados de processo
Sincronização de Tempo em Sistemas Distribuídos
3
ROTEIRO
Introdução
Relógios, eventos e estados de processo
Sincronização de Tempo em Sistemas Distribuídos
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
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.
6
ROTEIRO
Introdução
Relógios, eventos e estados de processo
Sincronização de Tempo em Sistemas Distribuídos
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
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
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?
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
11
MEDIÇÃO DE TEMPO
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)
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
14
ROTEIRO
Introdução
Relógios, eventos e estados de processo
Sincronização de Tempo em Sistemas Distribuídos
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.
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
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
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
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
20
SINCRONIZAÇÃO EM SISTEMAS DISTRIBUÍDOS• Algoritmos de sincronização de tempo
• Algoritmo de Cristian • Algoritmo de Berkeley• Algoritmo de Lamport
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
22
ALGORITMO DE CRISTIAN
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.
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.
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
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
27
RELÓGIOS LÓGICOS DE LAMPORT
Relógio lógico de Lamport em sistemas distribuídos.
28
RELÓGIOS LÓGICOS DE LAMPORTCada 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
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.
30
SISTEMAS DISTRIBUÍDOS
TEMPO, RELÓGIO E SINCRONIZAÇÃO DE TEMPO
ARTHUR EMANUEL DE OLIVEIRA CAROSIA