Você está na página 1de 36

Sincronizao

Tempo e Relgios

Sincronizao de Relgios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol

O papel do tempo
Crucial na ordenao de eventos
Tempo Real?
-

Funo montona contnua e crescente Unidade: segundo

Actualmente um segundo a durao de 9.192.631.770 perodos da radiao correspondente transio entre os dois nveis hiperfinos do estado fundamental do tomo de csio 133

Graficamente pode ser representado por uma sequncia de pontos sobre uma linha recta Timeline
2

O papel do tempo
O uso do tempo em sistemas distribudos feito em dois aspectos:

- Registar e observar a localizao de eventos na timeline Queremos saber qual a sequncia em que ocorreu um conjunto de eventos (possivelmente distribudos por vrias mquinas) - Forar o futuro posicionamento de eventos na timeline Sincronizao do progresso concorrente do sistema

O papel do tempo
Para conhecermos qual a sequncia de um conjunto de acontecimentos podemos marcar o instante de ocorrncia atribuindo um,
Timestamp: sequncia de caracteres que marcam a

data e/ou tempo no qual um certo evento ocorreu.


(ex. data de criao/alterao de um ficheiro) - um timestamp est associado a um ponto na timeline.

Se queremos comparar a durao de vrios acontecimentos podemos usar, Intervalos de tempo: cadeia de tempo composta por vrios intervalos adicionados
4

Duraes Distribudas
Timers / relgios locais: implementam a abstraco da

timeline.
Num sistema distribudo cada evento pode ocorrer em diferentes locais cada um com a sua timeline.
Como conciliar diferentes timelines?
Como medir duraes distribudas?

Tempo Global vs Tempo Absoluto


Tempo Global (global time): implementa a

abstraco de um tempo universal, atravs de um relgio que fornece o mesmo tempo a todos os participantes no sistema.

Tempo

Absoluto (absolute time): padres universalmente ajustados, disponveis como fontes de tempo externo para o qual qualquer relgio interno se pode sincronizar.
6

Relgios locais
Relgio fsico local (physical clock - pc): o modo mais

comum para fornecer uma fonte de tempo num processo. - Equipamento fsico, que conta as oscilaes que ocorrem num cristal de quartzo a uma dada frequncia. - Cada oscilao do cristal decrementa o contador de uma unidade. - Quando o contador chega a zero, gerado um interrupt e o contador recarregado com o valor inicial.
-

Cada interrupt designado como um clock tick


7

Relgios locais
Um relgio num processo correcto, k, implementa uma

funo discreta, montona crescente, pck, que mapeia o tempo real t em tempo de relgio pck(t).
Problemas dos relgios fsicos:

Granularidade: relgios fsicos so granulares, isto , avanam uma unidade em cada tick ttk. pck tk+1 - pck tk = g

Problemas dos relgios fsicos


- A frequncia das oscilaes varia com a temperatura - Diferentes taxas de desvio em diferentes computadores
Taxa de desvio do relgio fsico: existe uma constante

positiva rp, a taxa de desvio (rate of drift), que depende no s da qualidade do relgio mas tambm das condies ambientais. 0 1- rp (pck(ttk+1) pck(ttk))/g 1+ rp para 0 ttk ttk+1
-5 (Para uma taxa de desvio de 10 , aps 60 minutos o erro acumulado pode ser superior a 30 milissegundos

Clock skew / Clock drift


Skew a diferena do valor do tempo lido de dois relgios diferentes.

Drift a diferena no valor lido de um relgio e o valor do tempo fornecido por um relgio de referncia perfeito por unidade de tempo do relgio de referncia.
Ex. drift de 10 -5 segundos / segundo, significa que em cada segundo o relgio tem um desvio de 0,00001 segundos.
10

Para que serve um relgio local?


Fornecer timestamps para eventos locais. Medir duraes locais O erro causado pelo desvio normalmente insignificante para pequenas duraes.

Pode ser usado como um timer para estabelecer

timeouts
Medir duraes distribudas round-trip
11

Relgios Globais - Caractersticas


Fornecer o mesmo tempo para todos os

intervenientes do sistema
Timestamping de eventos distribudos Medio de duraes distribudas

12

Relgios Globais - funcionamento

criado um relgio virtual vcp para cada processo p a partir do relgio fsico

feita a sincronizao de todos os relgios locais com o mesmo valor inicial vcp(tinit) Periodicamente os relgios virtuais so re-sincronizados Algoritmos de Sincronizao
13

Propriedades dos Relgios Globais


Granularidade gv = vcp(tk+1) - vcp(tk) Preciso (v): quo prximos os relgios se mantm

sincronizados entre si em qualquer instante do tempo.

Exactido (accuracy -av): quo prximos os relgios

esto sincronizados em relao a uma referncia de tempo real absoluto (sincronizao externa)

14

Propriedades dos Relgios Globais (cont.)

15

Sincronizao interna vs Sincronizao externa


Sincronizao interna: - relgios tm que obter preciso relativamente a um tempo interno ao sistema Sincronizao externa: relgios tem que estar sincronizados com uma fonte externa de tempo universal

16

Referncias de Tempo universal - Normas


Tempo Atmico Internacional (TAI - Temps Atomique International) funo contnua monotona crescente a uma taxa constante (tempo mdio dos relgios atmicos de csio existentes) Universal Time, Coordinated (UTC) referncia de tempo poltica (correco do TAI de forma a ajustar o tempo com o dia solar)
- Forma mais simples de obter o UTC: por GPS (Global Position System) assegurada uma exactido, em terra, <= 100ns para os relgios dos receptores de GPS
17

Medio de duraes round-trip

Certas duraes distribudas podem ser medidas sem

a existncia explcita de relgios globais


O atraso de entrega de uma mensagem pode ser

calculado com um erro conhecido e limitado, se existir uma mensagem prvia recente no sentido inverso

18

Medio de duraes round-trip (cont.)


Pr-requisitos para o uso deste mtodo:
- Assegurar troca de mensagens frequente entre os sites relevantes - Assegurar que o timestamping das transmisses de mensagens e entregas, tambm sejam trocados entre os sites relevantes

19

Medio do atraso de entrega de mensagens

t D (m1 ) Tq1 Tq 0 Tp1 Tp 0 TD min


20

Algoritmos de Sincronizao
Caso mais simples:

Sincronizao interna entre dois processos num

sistema distribudo sncrono.


- So conhecidos os limites mximo (Max) e mnimo (Min) para o envio de mensagens, assim como para o desvio do relgio e para o tempo de execuo dos processos. Assumindo que o processo 1 envia uma mensagem ao processo 2 com o tempo que marca o seu relgio, t
21

Algoritmos de Sincronizao
A incerteza no envio da mensagem ser u = (Max Min) Se o processo 2 acerta o seu relgio para t + Min, o mximo desvio (skew) ser u porque a mensagem pode ter demorado Max. Se o processo 2 acerta o seu relgio para t + Max, o mximo desvio ser tambm u porque a mensagem pode ter demorado Min. Mas se o processo 2 acertar o seu relgio para, t + (Max + Min) /2 O desvio (skew) entre os dois relgios ser no mximo, (Max - Min) / 2
22

Algoritmos de Sincronizao
Como acertar um relgios
- obter UTC e corrigir o software do relgio

Problemas O que acontece se um relgio est adiantado e acertado?


O tempo nunca anda para trs O valor lido do relgio fsico dever ser escalado pelo software

de forma a ir atrasando lentamente, sempre como uma funo crescente.


23

Algoritmos de Sincronizao
Sistemas Assncronos Algoritmo de Cristian
- obter UTC e corrigir o software do relgio

T0 T1
Cliente

pedido
h

tempo UTC

Servidor com receptor de UTC Estimativa para o tempo de propagao da mensagem: p = (T1 T0 h ) /2 (= metade do round-trip time - RTT )
24

Algoritmos de Sincronizao
Algoritmo de Cristian
- Acertar o relgio do cliente para UTC + p
Fazer vrias medies para obter o valor de T1-T0

- Descartar valores acima de um determinado limite - Ou assumir os valores mnimos Algoritmo probabilstico: - a sincronizao conseguida se o RTT pequeno quando comparado com a exactido desejada - a exactido tanto maior quanto o tempo de transmisso est perto do mnimo
25

Algoritmos de Sincronizao
Algoritmo de Cristian
Problemas
Ponto nico de falha e congestionamento (bottleneck)

Possvel soluo: - utilizar um conjunto de servidores com receptores de UTC - o cliente faz o pedido em multicast para o conjunto de servidores e usa a primeira resposta que recebe
Um servidor em falha ou malicioso pode provocar estragos.

Possvel soluo: - autenticao - protocolo de acordo entre vrios servidores que permita mascarar falhas.
26

Algoritmos de Sincronizao
Algoritmo de Berkeley (sincronizao interna)
- escolhido um computador para ser o co-ordenador (master) - O master periodicamente contacta os outros computadores, (slaves) - O master faz uma estimativa do tempo local de cada slave, baseado no rtt. - O master calcula o tempo mdio de todos os computadores, ignorando valores de transmisso demasiado elevados e mquinas com tempos muito diferentes dos outros. - Finalmente o master envia a cada computador o valor de que o seu relgio deve ser ajustado (esse valor pode ser positivo ou negativo)
27

Algoritmos de Sincronizao
Algoritmo de Berkeley (sincronizao interna)
0

3:00

Pedido
3:00
3:00 3:00
3:00

-10 2:50
Resposta

+25 3:25

2:50

3:25 +15

3:05 -20

+5

3:05
Ajuste
28

3:05

Algoritmos de Sincronizao
Algoritmo de Berkeley (sincronizao interna)
Preciso: depende do round trip time Tolerncia a falhas: Calcula a mdia dos tempos para um

subconjunto de computadores que diferem a at um certo valor mximo. Ignora mensagens cujo tempo de transmisso demasiado elevado.
Que fazer se o master falha?

Eleger um novo coordenador.


29

Algoritmos de Sincronizao
Network Time Protocol (NTP)
Mltiplos servidores de tempo espalhados pela Internet Servidores primrios (ligados directamente aos receptores

de UTC
Servidores secundrios sincronizam com os primrios
Servidores tercirios sincronizam com secundrios, etc Permite sincronizar um elevado nmero de mquinas
30

Algoritmos de Sincronizao
Network Time Protocol (NTP)
Permite lidar com avarias de servidores

Se um servidor secundrio no consegue aceder a um primrio, tenta aceder a outro. Existem servidores redundantes e caminhos redundantes entre servidores.
Usa autenticao para verificar se a informao vem de

fonte fivel

31

Algoritmos de Sincronizao
Modos de sincronizao do NTP
Modo multicast

- Usado em LANs de alta velocidade - um ou mais servidores faz periodicamente multicast do seu tempo para os outros servidores. - os receptores acertam os seus relgios assumindo um pequeno atraso de transmisso.

32

Algoritmos de Sincronizao
Modos de sincronizao do NTP
Modo procedure call

- Similar ao algoritmo de Cristian - os clientes solicitam o tempo de um ou vrios servidores, e estes enviam o valor do seu relgio. - adequado quando se pretende maior nvel de exactido ou - o multicast no est disponvel
33

Algoritmos de Sincronizao
Modos de sincronizao do NTP
Modo symmetric (maior exactido, usado em servidores

primrios ou prximos) - Pares de processos solicitam o tempo um ao outro


Server B T2 T3 m' Time Server A T1
34

Time

T4

Algoritmos de Sincronizao
NTP symmetric mode
Para cada par de processos calcula-se um offset, o, que corresponde diferena entre os dois relgios, e um delay, d, que o tempo total de transmisso das duas mensagens Se o offset do relgio de A em relao ao de B for o os tempos de transmisso de mensagens de m e m forem t e t Ento: T2 = T1 + t + o e T4 = T3 + t - o
di = t + t = T2 - T1 + T4 - T3
35

(round trip delay)

Algoritmos de Sincronizao
NTP symmetric mode
T2 = T1 + t + o e T4 = T3 + t - o di = t + t = T2 - T1 + T4 - T3 (round trip delay)
Supondo que T2 - T1 T4 - T3

Podemos estimar o offset de A relativo a B como: O = T3 + ( (T2 - T1) + (T4 - T3) ) /2 - T4 = ( (T2 - T1) + (T3 - T4) ) /2 Se o relgio de A mais rpido, O < 0;
36

Você também pode gostar