A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

PROBABILISTC CLOCK SYNCHRONIZATION

Apresentações semelhantes


Apresentação em tema: "PROBABILISTC CLOCK SYNCHRONIZATION"— Transcrição da apresentação:

1 PROBABILISTC CLOCK SYNCHRONIZATION
å = b a e mc 4 2 PROBABILISTC CLOCK SYNCHRONIZATION Agenda: Notas introdutórias Pressupostos Tempo de um relógio remoto Tempo de um relógio remoto com precisão especifica A concretização Conclusões André Ribeiro Claudia Carvalho Nuno Paiva

2 Onde está o tempo exacto?
GMT-Rotação da Terra TAI - Frequência de oscilações atómicas (celsium-133) UTC – Universal Time Coordinated Com certeza já se questionaram com o que será o tempo exacto, o tempo segundo o qual todos se guiam? Assim sendo é bem acente que alguém tem que ter um relógio exacto, e que das duas uma, ou o relógio tem uma precisão tal que não deriva, ou além disso tem que o manter. Hoje existem 2 standards aceites e utilizados para saber o tempo exacto. Um tem por base a rotação da terra, o outro a frequencia de oscilações atómicas. Quanto à rotação da terra, não é uniforme o que causa desvios de cerca de um segundo por ano, assim sendo resta-nos o TAI que nos permite a precisão de microsegundos num ano. UTC é baseado no tempo atómico e é normalmente difundido por WWV (Short Wave Radio Station). Ao TAI é feito um acerto em que são adicionados segundos em alturas especificas. UTC = TAI + Leap Seconds TAI - International Atomic Time Mais info.

3 Porquê o tempo exacto? Quando ocorreu um evento Quanto tempo demorou
Qual ocorreu primeiro Especialmente em sistemas distribuidos existe a necessidade de mantermos um tempo o mais correcto possível. Podemos não seguir o tempo real, mas dentro do sistema temos que ter todos a mesma noção de tempo. Só assim será possível saber quando ocorreu um evento, quanto tempo demorou, e qual ocorreu primeiro.

4 Tipos de relógios utilizados
Relógios físicos Relógios lógicos Num sistema informático cada máquina tem o seu relógio interno segundo o qual se guiam todos os processos, tendo assim uma noção conjunta de tempo. Quando passamos a ter vários relógios em vários sistemas começam-nos a surgir algumas dúvidas de que estejam todos com a mesma hora. Aqui o grande desafio é que todas as máquinas cheguem a um concenso de tempo, esse conceso poderá ou não ser o mais perto possível do tempo real. No primeiro caso necessitamos de um algoritmo de sincronização, no segundo de uma fonte externa de tempo, tipicamente um UTC com acesso por WWv, GPS, ou linha telefónica onde terão que ser acrescentados os atrasos de comunicação do meio. Os relógios lógicos poderão ser utilizados em sistemas em que a ocorrencia de eventos é tão próxima que podem surgir dúvidas de qual ocorreu primeiro.

5 O que fazer para acertar o relógio?
Equipamento dedicado: WWv GPS Linha telefónica Recursos existentes: Ligação em rede Acerto gradual vs Abrupto Outra ideia brilhante surgiu. Aproveitando o facto das máquinas estarem todas ligadas em rede, porque não sincronizar os relógios pela mesma. Assim não será necessário gastar recursos monetários com hardware para ler GPS/WWv, linhas telefónicas dedicadas, etc... Como será fácil de deduzir, com meios dedicados o tempo de propagação é praticamente constante, bastando depois acrescentar ao tempo recebido, o tempo de propagação. Em meios partilhados, nomeadamente em redes TCP a utilização de algoritmos de routing e de controlo de tráfego fazem com que os tempos de propagação sejam diferentes, embora seguindo uma probabilidade. Uma vez calculado o tempo de propagação, não podemos acertar o relógio abruptamente, temos que aumentar/diminuir a velocidade do mesmo por software. Assim não corremos o risco de baralhar as tarefas agendadas. Se atrazarmos abruptamente contradizemos eventos que já ocorreram, se adiantarmos podemos fazer disparar timers antes do tempo.

6 Métodos de acerto Métodos de acerto: Algoritmos por SW: Push Pull
Convergência C/média S/média Consistência Existem 2 métodos para sincronismo: O Push é quando um servidor de tempo, por sua iniciativa, faz um anuncio para que todos os outros se sincronizem. No modelo Pull são as máquinas que quando assim o entendem fazem um pedido de leitura do relógio. Os métodos são concretizados por SW ou por HW, no caso de SW são através de algoritmos específicos, tendo sempre em linha de conta o minimizar o erro/incerteza dos tempos de propagação. * CNV c/média - A um tempo especifico faz um broadcast de pedido de leitura de relógio e aguarda um determinado tempo. Com base nos tempos recolhidos o algoritmo calcula o desvio do seu relógio. * CNV s/média - um nó tenta ser o master e os outros sync. com ele. Assim todos vão convergindo para um tempo unico dentro do sistema. Alg. de consistencia - tem por base algoritmos de consistencia em que o truque é tratar o tempo como um valor, depois é feito o acordo entre todos para chegarem ao concenso do valor correcto. Todos estes algoritmos estão dependentes do erro máximo obtido na leitura. Para minimizar este problema Flaviu Cristian propõe um método probabilistico em que se pode controlar a precisão do método. Não é garantida a probabilidade de 1 mas o erro é menor.

7 Porquê um método probabilistico
median delay Um método probabilistico surge por forma a poder atingir uma maior precisão no acerto dos relógios. Como vamos ver de seguida, acenta principalmente no cálculo mais exacto possível do tempo de propagação de uma menssagem. min delay

8 Trabalhos anteriores Assume-se a existência de um limite máximo no atraso (max) em que n relógios não se sincronizam com uma precisão melhor do que (max-min) (1- 1/n); Estimula-se um timeout (maxp) de forma a que o processo não fique eternamente à espera de resposta em que a melhor sincronização alcançada é caracterizada como sendo 4(maxp-min);

9 Assunções em Relógios, Processos e Comunicação
Subentende-se que um relógio físico (HC) que mostra o tempo (HC(t’)) em determinado tempo real (t’), permanece correcto num tempo posterior (t >t’), se se encontrar no intervalo[t,t’] com um erro no máximo de (t-t’) em que  é a variação máxima do relógio em relação ao tempo real: (t-t’)- (t-t’) HC(t)-HC(t’)  (t-t’)+ (t-t’); Ignoram-se valores como 2 ;

10 Escolha de um timeout (maxp);
Quaisquer dois relógios podem variar entre si até 2; Escolha de um timeout (maxp); tempo real tempo do relógio1 tempo do relógio2 1 - + 2

11 Uma falha no relógio ocorre quando a clock condition é violada:
Crash (o relógio pára); Falhas no timing (o contador do relógio acelera ou atrasa muito); Falhas Bizantinas (o contador apresenta valores errados por alguns dos seus bits se encontrarem sempre com o mesmo valor); Assume-se que entre a ocorrência de um timeout e o pedido de interrupção não decorre nenhum tempo.

12 Leitura de um relógio remoto
P Q D (“time=?”) (“time=”,T)

13 Teorema: Se os relógios P e Q estão correctos, o valor mostrado pelo relógio de Q quando P recebe a mensagem (“time=”,T) encontra-se no intervalo [T+min(1-), T+2D(1+2)-min(1+)].

14 Demonstração: 1. 2d = (min+)+(min+) = 2min++ 2.0    2d-2min
min+ - Delay real aquando da mensagem (“time=?”) min+ - Delay real aquando da mensagem (“time=”,T)   0,   0 2.0    2d-2min 3.CQ(t)  [T+(min+)(1-), T+(min+)(1+)] 4.CQ(t)  [T+min(1-), T+(2d-min)(1+)] CQ(t)  [T+(min+0)(1-), T+(min+2d-2min)(1+)] CQ(t)  [T+min(1-), T+(2d-min)(1+)]

15 6.CQ(t)  [T+min(1-), T+2D(1+2)-min(1+)] c.q.d.
5.d  D(1+) 6.CQ(t)  [T+min(1-), T+2D(1+2)-min(1+)] c.q.d. CQ(t)  [T+min(1-), T+(2d(1+)-min(1+)] CQ(t)  [T+min(1-), T+2(D(1+))(1+)-min(1+)] CQ(t)  [T+min(1-), T+2(D+D)(1+)-min(1+)] CQ(t)  [T+min(1-), T+(2D+2D)(1+)-min(1+)] CQ(t)  [T+min(1-), T+(2D+2D+2D+2D2)-min(1+)] CQ(t)  [T+min(1-), T+(2D+4D+2D2)-min(1+)] CQ(t)  [T+min(1-), T+2D(1+2+2)-min(1+)] CQ(t)  [T+min(1-), T+2D(1+2)-min(1+)]

16 Este teorema indica que P consegue determinar um intervalo que contém o valor do relógio Q se medir o round trip delay 2D. Esse valor pode ser qualquer ponto nesse intervalo. P deve minimizar o erro máximo que comete ao ler o relógio de Q, estimando CQ(t) através da escolha da função CPQ(T,D) para ser o ponto médio do intervalo. 7.CPQ(T,D)  T+D(1+2)-min 8.e = D(1+2)-min  Quanto mais pequeno for o round trip delay, menor será o erro de P ao ler o relógio de Q

17 Leitura de um Relógio Remoto com uma Precisão Específica
P terá de rejeitar todas as leituras cujo round trip delay seja superior a 2U de forma a obter um erro de leitura mínimo () em que 9. U = (1-2) (+min)  Quanto mais próximo o U estiver de min melhor é a precisão da leitura de P

18 Contudo, uma vez que na pior das situações o timer de P pode-se encontrar com uma velocidade 1+, o timeout escolhido por P deve ser maior que 10.Umin = min(1+) para assegurar que entre o envio da mensagem e a sua recepção haja um delay real de pelo menos min. Para obter a melhor precisão possível, o timeout deve ser o mais próximo possível de Umin.

19 De acordo com a fórmula 8, a melhor precisão possível é
11.emin = 3min D(1+2 )-min min(1+)(1+2 )-min min(1+2 + +2 2)-min min+3 min-2 2-min 3min 2  Variação relativa entre o relógio de P e o de Q enquanto a mensagem (“time=”,T) “viaja” entre Q e P   Erro de P no estabelecimento de um timeout

20 De forma a impedir que P fique eternamente a tentar ler o relógio de Q, há que definir um valor máximo de tentativas sucessivas de leitura (k) em que 12. é a média de mensagens para estabelecer uma ligação entre dois processos.

21 RELÓGIOS CONTINUAMENTE AJUSTÁVEIS
Para compensar o facto de a velocidade de um relógio físico (HC), não ser ajustável, é implementado um relógio lógico (C) em software: C(t)  HC(t)+A(t) Para evitar “saltos” no tempo, A deve ser uma função contínua de tempo: A(t) = m*HC(t)+N em que, m = (M-L)/ e N = L-(1+m)*HC  - parâmetro de amortização.

22 Protocolo de sincronização Master-slave
O desvio máximo (es) entre um slave e um relógio externo é: es = em + ms. Protocolo de sincronização em = ao protocolo ms. Como existe ligação dedicada, eem=D-min considerando d (round trip delay) < 10s e = 10-5 1) CM(t)  [T+min, T+2D-min] 2) e = D-min

23 O algoritmo S M tmedido treal  C(t)=HC(t) C(t)=HC(t)+A(t) at rapport:
e D-min C(t)=HC(t) C(t)=HC(t)+A(t) W treal

24 Características e melhoramentos
DNA é variável. D ~= min => DNA grande D ~= U-min => DNA pequeno Se se escolher U ~= min => grande precisão´e muitas mensagens Se se escolher U ~= atrazo maximo, bastam 2 mensagens. Algoritmo Deterministico. São permitidas até k-1 tentativas falhadas Distribuição das mensagens de sincronização Se estimar ró estaticamente aumento o DNA Aumentar e diminuir U automaticamente.


Carregar ppt "PROBABILISTC CLOCK SYNCHRONIZATION"

Apresentações semelhantes


Anúncios Google