Escolar Documentos
Profissional Documentos
Cultura Documentos
Tempo e Relgios
O papel do tempo
Crucial na ordenao de eventos
Tempo Real?
-
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
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?
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.
-
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
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
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
timeouts
Medir duraes distribudas round-trip
11
intervenientes do sistema
Timestamping de eventos distribudos Medio de duraes distribudas
12
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
esto sincronizados em relao a uma referncia de tempo real absoluto (sincronizao externa)
14
15
16
calculado com um erro conhecido e limitado, se existir uma mensagem prvia recente no sentido inverso
18
19
Algoritmos de Sincronizao
Caso mais simples:
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
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?
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
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
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