Académique Documents
Professionnel Documents
Culture Documents
Capítulo 10 - Introdução
• Tempo é importante em SDs
– para etiquetar transações comerciais eletrônicas
• Noções iniciais: tempo em SD, drift, skew, UTC – controle de concorrência com ordenação por timestamp
• Sincronização de relógios físicos – manter a consistência de dados distribuídos
– Algoritmo de Christian
– Algoritmo de Berkeley
– Protocolo NTP • Problema
• Tempo lógico e relógios lógicos – não existe um tempo global em SDs
• Estados globais – cada computador tem seu próprio relógio físico
• Debug distribuído – estes relógios não são exatos, desviam ao longo do tempo
– Não conseguimos sincronizá-los perfeitamente
Sist. Distrib. II - Prof. Cesar A. Tacla 1 Sist. Distrib. II - Prof. Cesar A. Tacla 2
• O que queremos
• Veremos • Ordenar os eventos que ocorrem num SD
– Algoritmos para sincronizar relógios físicos de forma • Para isto, colocamos timestamps = hora + data
aproximativa
• Todo computador num SD tem um relógio interno
– Relógios lógicos (relógios vetoriais), uma alternativa a
• utilizados pelos processos para obter o tempo local corrente
sincronização de relógios físicos
• processos em computadores diferentes podem colocar
– Algoritmos para determinar o estado global de uma execução
timestamps nos eventos
distribuída.
• Ex. Determinar o estado de um processo A quando o processo B • mas os relógios de cada computador fornecem tempos
estava num determinado estado diferentes
• Como sincronizar os relógios dos processos de um SD?
• Poderiamos setar todos para o mesmo horário
• Mesmo assim, os relógios divergem ao longo do tempo a menos
que correções sejam aplicadas
Sist. Distrib. II - Prof. Cesar A. Tacla 3 Sist. Distrib. II - Prof. Cesar A. Tacla 4
• Relógios internos divergem em relação a um tempo de • Clock skew: diferença entre a leitura simultânea de dois
referência pois cada um tem uma “taxa de desvio” = drift
relógios
rate
• Drift rate: é a taxa de desvio de um relógio em relação a
um relógio padrão • Exemplo: Skew num instante t qualquer
– Clock 1 = 10:00:00.005
• Exemplo
– Clock 2 = 9:00:58.000
– Relógios quartz simples: 10-6 seg/seg
– Skew = 2.005
• Atrasa 1 segundo a cada 11,6 dias
– Relógios quartz de precisão: 10-8 seg/seg
• Atrasa 1 segundo a cada 3 anos e 2 meses
– Relógios atômicos: 10-11 seg/seg
• Atrasa 1 segundo a cada 3 mil anos
• Há relógios mais precisos (atrasam 1 seg a cada 3 bilhões de anos)
Sist. Distrib. II - Prof. Cesar A. Tacla 5 Sist. Distrib. II - Prof. Cesar A. Tacla 6
1
Sincronização de relógios físicos: UTC Sincronização de relógios físicos: externa
– Mais detalhes:
Hora fornecida por
• http://www.bipm.fr/en/scientific/tai/time_server.html
uma autoridade
• http://www.worldtimeserver.com/?locationid=UTC P1 externa P2
D D tempo
Sist. Distrib. II - Prof. Cesar A. Tacla 7 Sist. Distrib. II - Prof. Cesar A. Tacla 8
Sist. Distrib. II - Prof. Cesar A. Tacla 9 Sist. Distrib. II - Prof. Cesar A. Tacla 10
Sist. Distrib. II - Prof. Cesar A. Tacla 11 Sist. Distrib. II - Prof. Cesar A. Tacla 12
2
Sincronização interna em sist. síncronos Sincronização interna em sist. síncronos
• Dois processos, p1 e p2, querem sincronizar seus • Sincronização interna em sistemas síncronos
relógios: – É o caso mais simples de sincronização
– Casos extremos
– p1 envia seu clock t numa mensagem mediante requisição de
• Se p2 seta o relógio para t + Tmin então o skew pode ser igual a i (Tmax –
p2 ou num de um período pré-estabelicido Tmin) se a mensagem levou Tmax para chegar
• Se p2 seta o relógio para t + Tmáx então o skew pode ser igual a i (Tmax –
req Tmin) se a mensagem levou Tmin para chegar
P2 P1 – Caso médio
• Se p2 seta o relógio para t + (Tmax + Tmin)/2 então o skew será menor ou
t igual a i
Sist. Distrib. II - Prof. Cesar A. Tacla 13 Sist. Distrib. II - Prof. Cesar A. Tacla 14
t = 10:00:00.005
2ms
Sist. Distrib. II - Prof. Cesar A. Tacla 17 Sist. Distrib. II - Prof. Cesar A. Tacla 18
3
Método de Christian: precisão Método de Christian: precisão
• Algoritmo de Christian: precisão – erro máximo • Algoritmo de Christian: precisão – erro máximo
Sist. Distrib. II - Prof. Cesar A. Tacla 19 Sist. Distrib. II - Prof. Cesar A. Tacla 20
Sist. Distrib. II - Prof. Cesar A. Tacla 21 Sist. Distrib. II - Prof. Cesar A. Tacla 22
• Algoritmo de Berkeley
– para sincronização interna em sistemas assíncronos • Algoritmo de Berkeley
– Tem-se um conjunto de computadores, escolhe-se um como – Exemplo:
mestre
– RTT máximo = 10ms
t1
clock? 1
Ajuste Comp Leitura RTT Estimado Média Ajustes
P1
clock? 4
Ajuste
Mestre 1:00:05.010 0 1:00:05.010 + 0.006
clock?
Ajuste 2 P4 P1 .031 6 .034 1:00:05.016 - 0.018
P2 mestre
t2
P2 .000 8 .004 + 0.012
t4
P3 .070 20 .080 Desconsidera - 0.064
clock?
Ajuste 3 da média
P3 pois RTT >
t3 RTT máximo
Sist. Distrib. II - Prof. Cesar A. Tacla 23 Sist. Distrib. II - Prof. Cesar A. Tacla 24
4
Algoritmo de Berkeley: descrição NTP: Network Time Protocol
Sist. Distrib. II - Prof. Cesar A. Tacla 25 Sist. Distrib. II - Prof. Cesar A. Tacla 26
Sist. Distrib. II - Prof. Cesar A. Tacla 29 Sist. Distrib. II - Prof. Cesar A. Tacla 30
5
NTP: parte 1 do algoritmo NTP: parte 1 - exemplo
Cálculos feitos no processo A A B
Delay estimado (em A)
Delay estimado 00:00:04.000 00:00:00.000
A B (área em azul) di = t - t’
00:00:00.010
di = 50 - 30 = 20 ms
Ti-5, Ti-6, Ti-7 Ti-5 di = t - t’
di = (Ti – Ti-3) – (Ti-1 – Ti-2)
Ti-4 0 00:00:00.030 Offset estimado (em A)
010; 4.00
0.030; 0.
00:00:04.040 00:00:00.040 oi = (ti-1 + di/2) - ti
Ti-3
Estimativa do offset (em A) oi = 100 + 10 – 4.110
Ti-5 , T
i-4 , T
oi = (Ti-1 + di/2) - Ti 00:00:04.060 00:00:00.060 oi = -4.000 (clock de b
i-3 Ti-2
está atrasado)
t t’ 0.030; 4.04
0; 4.0 60 00:00:00.070
Ti-1 Precisão
, T i-3 t’ Precisão
T i-1, T i-2 ii = ±di/2 t
00:00:00.100 ii = ±di/2 = ±10ms
0
O erro vem da suposição que 070; 4.06
0.100; 0.
metade do delay foi gasto na 00:00:00.110
Ti transmissão de A para B e a outra 00:00:04.110
metade de B para A
Sist. Distrib. II - Prof. Cesar A. Tacla 31 Sist. Distrib. II - Prof. Cesar A. Tacla 32
NTP: parte 1 – precisão em detalhes (1) NTP: parte 1 – precisão em detalhes (2)
A B A B
Precisão (em A) Precisão (em A)
ii = ±di/2 = ±10ms ii = ±di/2 = ±10ms
Tipo de Tipo de
sincron. sistema
• Algoritmo NTP – parte 1
simples t + (Tmax + Tmin)/2
– O algoritmo guarda os oito últimos pares <oi, di> síncronos
– Para setar o clock, NTP utiliza o valor do offset que apresenta interna Cálculo dos ajustes é dado pela
menor di (ou seja, maior precisão) assíncronos Berkeley
média dos n clocks . Estimativa de
cada clock similar ao método de
sincronização Christian
síncronos
Clock
externa
t + RTT/2
assíncronos Christian Precisão
±(RTT/2 – Tmin)