Vous êtes sur la page 1sur 6

Tempo e estados globais Tempo

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

Tempo Sincronização de relógios físicos

• 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

Sincronização de relógios físicos: drift Sincronização de relógios físicos: drift

• 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

• UTC: Tempo universal coordenado • Sincronização externa


– Padrão internacional de tempo baseado em relógio atômico mas – Quando os relógios dos processos estão sincronizados com
eventualmente atualizado pelo horário astronômico uma autoridade externa
– Difundido por estações de rádio por terra e satélite – |S(t) – Ci(t)| ≤ D para i=1,2,…N
– Computadores com receptores do sinal de rádio podem sincronizar • t: tempo físico/real
seus relógios • S: tempo dado por um servidor UTC
– Existem servidores de tempo na Internet • Ci: clock do i-ésimo computador de um SD
• D: limite de sincronização

– 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

Sincronização de relógios físicos: interna Sincronização de relógios físicos: externa x interna

Hora fornecida por


• Sincronização interna
uma autoridade
– Quando os relógios dos processos estão sincronizados entre externa
eles dentro de um determinado limite P1 P2
– Utilizada quando é necessário somente controlar o tempo de
D D
execução das operações internas ao sistema. tempo

– |Ci(t) – Cj(t)| ≤ D para i, j=1,2,…N Se um conjunto de processos está sincronizado


externamente dentro do limite D então estes
processos estão sincronizados internamente
dentro do limite 2.D

Sist. Distrib. II - Prof. Cesar A. Tacla 9 Sist. Distrib. II - Prof. Cesar A. Tacla 10

Sincronização de relógios físicos: interna x externa Sincronização interna em sistemas síncronos

Hora fornecida por


• Sincronização interna em sistemas síncronos
uma autoridade
externa
P1 P2
– Num sistema síncrono os seguintes limites são conhecidos:
D D D D tempo • o tempo que cada processo leva para executar um passo (é
possível utilizar timeouts)
• os drift rates dos relógios
Se um conjunto de processos está sincronizado • o tempo máximo e mínimo de transmissão de mensagens
internamente dentro do limite D não podemos
afirmar nada quanto ao sincronização externa pois os
relógios podem desviar coletivamente em relação ao
relógio de uma autoridade externa.

Ex. P1 e P2 estão sincronizados em D, mas P2 está


atrasado 3D e P1, 4D em relação à autoridade
externa.

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

P2 seta seu clock para t + Ttrans


Precisão associada a Ttrans: i = Tmáx - Tmín – Acontece que a maioria dos sistemas são assíncronos (não existem
limites máximos de transmissão). Pode-se simplesmente dizer que
Ttrans = Tmin + x, x ≥ 0

Sist. Distrib. II - Prof. Cesar A. Tacla 13 Sist. Distrib. II - Prof. Cesar A. Tacla 14

Sincronização de relógios físicos: revisão aula 1 Método de Christian

• Revisão aula 1 • Algoritmo de Christian


– Clock drift/skew – Sincronização externa em sistemas assíncronos
– UTC – Um servidor S conectado a uma fonte UTC responde
– Tipos de sincronização fornecendo o tempo de seu relógio
• Interna: |Ci(t) – Cj(t)| ≤ D req
• Externa: |S(t) – Ci(t)| ≤ D
– Sincronização interna em sistemas síncronos Fonte
Cliente Servidor
• t + (Tmax + Tmin)/2 (menor skew máximo que as opções abaixo) UTC
• t + Tmax t
• t + Tmin
Cliente seta o clock
em t + RTT/2

RTT = round-trip time (envio + recebimento)


Sist. Distrib. II - Prof. Cesar A. Tacla 15 Sist. Distrib. II - Prof. Cesar A. Tacla 16

Método de Christian Método de Christian: precisão

• Algoritmo de Christian: precisão


• Algoritmo de Christian
cliente servidor
– utilizável em sistemas assíncronos onde os tempos de round-
trip observados entre cliente e servidor são menores que a Cliente seta clock em
precisão desejada req t + rtt/2 = 10:00:00.010
Mas, o exato seria:
– Fórmula: t + RTT/2 10:00:00.007

rtt = 10ms Erro: +3ms

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

cliente servidor cliente servidor

Supondo um Tmin = 1ms Supondo um Tmin = 1ms


req req
Cliente seta clock em Cliente seta clock em
t + rtt/2 = 10:00:00.005 t + rtt/2 = 10:00:00.015
t = 10:00:00.000
Mas, o exato seria: Mas, o exato seria:
rt =10ms 10:00:00.009 rt =10ms 10:00:00.011
Erro: -4ms Erro: +4ms
9ms
t = 10:00:00.010 Precisão
1ms ±(RTT/2 – Tmin)

Sist. Distrib. II - Prof. Cesar A. Tacla 19 Sist. Distrib. II - Prof. Cesar A. Tacla 20

Método de Christian: resumo sobre precisão Método de Christian: exercício em lab.

• Algoritmo de Christian • Algoritmo de Christian


– Resumo sobre a precisão
• Precisão: ±(RTT/2 – Tmin) – Exercício em laboratório:
• Quanto mais o RTT se aproxima Tmin, MAIOR será a precisão • Fazer um cliente e um servidor que implementem o algoritmo de
• Para obter um RTT mínimo pode-se fazer diversos pedidos ao Christian. O cliente deverá ser configurável para fazer n pedidos ao
servidor servidor antes de escolher o menor RTT para setar seu clock. O
servidor NÃO SERÁ SINCRONIZADO como uma fonte externa.
– Problemas do algoritmo
• Utiliza um servidor – se o servidor morre impossível de sincronizar • Cliente e servidor devem se comunicar por UDP
• Solução: utilizar vários servidores de tempo, clientes fazem
multicast do pedido e guardam a primeira resposta
• Outros problemas: servidores intrusos podem difundir um horário
falso

Sist. Distrib. II - Prof. Cesar A. Tacla 21 Sist. Distrib. II - Prof. Cesar A. Tacla 22

Algoritmo de Berkeley Algoritmo de Berkeley: exemplo

• 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

• Algoritmo de Berkeley • Network Time Protocol


– A cada t unidades de tempo, o mestre pergunta o valor do – Método de Christian e alg. de Berkeley são utilizados principalmente
clock dos seus escravos em intranets enquanto que NTP é um serviço para Internet
– O mestre estima o valor do clock dos escravos observando o – Permite aos clientes sincronizarem com uma fonte UTC
RTT (idem ao método de Christian) – Utilizável em sistemas assíncronos e sincronização externa
– Em seguida, o mestre calcula a média dos valores obtidos
(inclusive do seu relógio)
• Características
– Esta média elimina a tendência causada por certos clocks que
rodam +rápido ou +lento que os outros – É confiável – não é afetado por problemas de conexão pois usa
servidores redundantes e caminhos redundantes entre servidores
• A precisão do protocolo depende de um RTT máximo nominal
– Atende um grande número de clientes
• O mestre elimina todas leituras maiores que este máximo
– É seguro – evita interferências acidentais ou voluntárias usando
– O mestre envia o valor de AJUSTE dos clocks aos escravos
técnicas de autenticação para verificar se os dados provém de uma
– Se o mestre falha, outro computador pode assumir seu papel origem conhecida.

Sist. Distrib. II - Prof. Cesar A. Tacla 25 Sist. Distrib. II - Prof. Cesar A. Tacla 26

NTP: camadas NTP: sincronização entre servidores

• Funciona em camadas ou stratum


• Cada camada contém vários servidores • NTP – modos de sincronização entre servidores (1/2)
• Subrede de sincronização pode se reconfigurar quando um servidor cai – Multicast
ou ocorre uma falha • Uso: em LANs de alta velocidade
• Um ou mais servidores enviam periodicamente o valor do clock para os
outros servidores que setam seus relógios assumindo um tempo
desprezível de transmissão
Fonte UTC • Precisão relativamente baixa (mas pode ser suficiente em muitas situações)

Strata 1 Primário 1 Primário 2 Primário n – Por solicitação


(300) • Uso: quando uma precisão mais alta do que a obtida pelo modo multicast é
Precisão
necessária
dos Strata 2 Secundário1 Secundário2 • Um servidor responde aos pedidos de timestamp – idem ao método de
relógios (20.000) Christian
• Ex: dois sistemas de arquivos em redes LAN vizinhas, que devem manter
Strata 3 Terciário 1 Terciário 2 os relógios sincronizados para bem registrar os horários dos acessos aos
(80.000)* arquivos, podem acessar um servidor de tempo local

* Os números entre parênteses indicam a quantidade de servidores na Internet (dados de 1999)


Sist. Distrib. II - Prof. Cesar A. Tacla 27 Sist. Distrib. II - Prof. Cesar A. Tacla 28

NTP: sincronização entre servidores NTP: duas partes

• NTP – modos de sincronização (2/2) • Duas partes:


– Simétrico 1) Estimar a diferença dos relógios e a precisão desta estimativa
Servidores trocam mensagens com timestamps das últimas duas trocas e da
• Para servidores que fornecem o tempo em LANs e para os níveis
presente
mais altos da subrede de sincronização (níveis +próximos da fonte)
• Através de troca de mensagens
2) Efetuar o cálculo do horário para o relógio a ser sincronizado
Um servidor NTP troca mensagens com vários outros
– Para todos os modos Neste servidor, um algoritmo seleciona o servidor que fornece valores
• Mensagens são entregues de maneira não confiável (UDP) mais confiáveis => peer selection algorithm
• Nos modos por chamada e simétrico, os processos trocam PARES Um servidor troca de par se o atual não fornece bons resultados
de mensagens
Precisão:
±1 ms em LANS
na ordem de dezenas de ms na Internet

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

Delay estimado Delay estimado


0 0
010; 4.00 di = 50 – 30 = 20 ms 010; 4.00 di = 50 – 30 = 20 ms
0.030; 0. 0.030; 0.

00:00:00.060 Offset estimado 00:00:00.060 Offset estimado


0.030; 4.040; 4.060
oi = (0.090 + 0.010) – oi = (0.110 + 0.010) –
4.110 = -4.010ms 0.03 20ms 4.110 = -3.990ms
0; 4.0
40; 4
.0 60
00:00:00.090 Erro = -10ms Erro = -10ms
00:00:00.080
60
0; 4.0
; 0.06 Flechas azuis: real
0.090 20ms
Flechas marrons:
00:00:04.110 00:00:00.110 00:00:04.110 0.110; 0.080; 4.060 00:00:00.110
assumido pelo
algoritmo
Sist. Distrib. II - Prof. Cesar A. Tacla 33 Sist. Distrib. II - Prof. Cesar A. Tacla 34

Sincronização de relógios físicos Sincronização de relógios físicos

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)

Estimativa delay trans.:


NTP di = Ti – Ti-3 + Ti-2 – Ti-1
Estimativa do offset:
oi = (Ti-1 + di/2) - Ti
Precisão: ii = ±di/2
Sist. Distrib. II - Prof. Cesar A. Tacla 35 Sist. Distrib. II - Prof. Cesar A. Tacla 36

Vous aimerez peut-être aussi