Вы находитесь на странице: 1из 27

SINCRONIZAO DE RELGIOS

Anderson Pinheiro

Sumrio
2

Sincronizao de Relgios Relgios Fsicos Protocolos de Tempo de Rede Algoritmo de Berkeley Relgios Lgicos Algoritmo de Lamport Multicast Totalmente Ordenado

Sincronizao de Relgios
4

Relgios so essenciais no uso de computao, seja para medir o tempo ou identificar sequncias de eventos diversos.

Em sistemas centralizados, o tempo no ambguo, sendo gerenciado em apenas 1 mquina e obtido por chamada ao ncleo;
Em sistemas distribudos, obter um horrio comum a vrios computadores no trivial.

Sincronizao de Relgios
5

Os Sistemas Distribudos utilizam algoritmos distribudos na implementao de servios e aplicaes. Geralmente no desejvel ter todas as informaes sobre o sistema em um nico lugar. Os algoritmos distribudos apresentam as seguintes propriedades:
As informaes relevantes so espalhadas pelas mltiplas mquinas; Os processos tomam as decises baseadas somente em informaes locais; Um ponto de falha que paralise todo o sistema deve ser evitado;

Sincronizao de Relgios
6

Nos sistemas centralizados, o tempo no ambguo. Quando um processo quer saber o tempo, ele faz uma chamada ao sistema e o Kernel responde. Se o processo A pergunta pelo tempo e ento o prximo processo B pergunta pelo tempo, o valor que B possui ser maior (ou possivelmente) igual ao que A possui. Ele certamente no ser menor. Em um sistema distribudo, atingir a concordncia do tempo no trivial.

Sincronizao de Relgios
7

Imagine as implicaes da falta de um tempo global no programa make do UNIX, como exemplo. Normalmente, no UNIX, grandes programas so separados em mltiplos arquivos fontes, logo uma mudana em um desses arquivos fonte, somente requer que um arquivo seja compilado, no todos.
Verifica tempo de modificao Input.c make Input.o Tempo: 2150 Tempo: 2145 Precisa ser compilad o No precisa ser compilado Tempo: 2151 Tempo: 2144

Sincronizao de Relgios
8

Nos sistemas distribudos, onde no h uma concordncia no tempo global, suponha que output.o tem o tempo de 2144 como acima, e pouco tempo depois output.c foi modificado mas o tempo rotulado de 2143, porque o clock da mquina onde o arquivo foi modificado um pouco atrasado em relao ao clock da mquina na qual o compilador est rodando. Make no chamar o compilador. Como resultado o programa binrio executvel conter uma mistura de arquivos objetos de fontes antigas e novas. Provavelmente isto no funcionar.

Relgios fsicos Medida do tempo

At inveno dos relgios mecnicos (sec. XVII):

Tempo medido com auxlio dos astros;


Sol nasce no horizonte a leste; Alcana uma altura mxima no cu, ao meio dia (trnsito solar); Sol se pe no horizonte a oeste;

Intervalo entre 2 trnsitos solares consecutivos do Sol um dia solar; Portanto, se um dia possui 24 horas:
Cada hora possui 3600 segundos; Um segundo solar exatamente 1/86.400 de um dia solar.

10

Relgios fsicos Medida do tempo

Em 1948 foi inventado o relgio atmico:


Calcula

o tempo atravs de contagens de transies do csio 133 (1 segundo solar mdio = 9.192.631.770 transies).

Tal fato tornou possvel:


Medir

o tempo com maior preciso; Medi-lo independentemente das condies do globo terrestre e da atmosfera. Clculo da hora atmica internacional (TAI) pelo BIH.

11

Relgios fsicos Medida do tempo

Problema:
86.400

segundos TAI equivalem a aproximadamente 3ms a menos que um dia solar mdio.
extras a cada 800ms acumulados

Soluo:
Segundos

Relgios fsicos e GPS


12

Com base no TAI com correes de segundos foi estabelecido o sistema UTC (Universal Coordinated Time), que a base de toda a moderna medio de tempo.
O Nist fornece UTC atravs de rdios de ondas curtas (WWV). Alm disso vrios satlites fornecem UTC. O GPS faz triangulao usando satlites de modo a calcular as diferenas de tempo entre o UTC de cada satlite usado, calculando, assim, a localizao geogrfica do ponto.

Protocolo de Tempo de Rede


13

Proposto por Cristian(1989), baseia-se em clientes consultarem um servidor de tempo. Funcionamento:

1. Cada mquina envia uma mensagem para o servidor de tempo (mquina com receptor WWV ou relgio de preciso), perguntando pelo tempo corrente 2. Servidor de tempo responde o mais rpido possvel, com uma mensagem contendo o tempo corrente CUTC 3. Quando o transmissor obtm uma resposta, ajusta seu clock. H atraso no envio das mensagens e, portanto, a hora ser desatualizada.

Problema:

Protocolo de Tempo de Rede


14

T2

T3

T1 A

T4

A pode estimar seu deslocamento em relao a B. =[(T2-T1)+(T3-T4)]/2 Ser o tempo de erro entre os relgios =[(T2-T1)-(T4-T3)]/2 Ser o atraso estimado do envio

Protocolo de Tempo de Rede


15

Soluo:
Corrigir

a hora mudando o tempo gradativamente:


Atrasa

atualizando a cada 9ms ao invs de 10ms; Adianta atualizando a cada 11ms ao invs de 10ms;
Calcular

o atraso com base na medida do tempo da transmisso atravs do uso do deslocamento e estimativa de atraso . melhorado usando histrico de

Resultado

mdias.

Algoritmo de Berkeley
16

Ao contrrio do NTP, onde o servidor de tempo passivo, o algoritmo Berkeley consulta todas as mquinas de tempos em tempos, obtendo o horrio de cada mquina;

Gera uma mdia de todas as horas, e informa a todos os computadores o deslocamento de tempo a ser feito. O servidor muda inclusive a prpria hora!

Algoritmo de Berkeley
17

Relgio Lgico
18

Relgio Lgico - consistncia interna o que importa e no quanto eles esto prximos do tempo real.

Relgio Fsico - os clocks no podem diferir do tempo real mais que um determinado valor.

Relgio Lgico
19

Em Lamport (1978) - Time, Clocks, and the Ordering of Events in a Distributed System provada que a sincronizao dos relgios possvel e apresenta o algoritmo para se conseguir isto. Posteriormente, em outro artigo ele defende que a sincronizao dos clocks no precisa ser absoluta, pelos seguintes motivos:

Se dois processos no interagem, no necessrio que seus clocks sejam sincronizados. Usualmente o que importa no que todos os processos concordem com o exato tempo em que os eventos aconteceram, mas que concordem na ordem em que os eventos ocorreram.

Algoritmo de Lamport
20

Lamport definiu a seguinte relao: aconteceantes: a b (a acontece antes de b) Significa que todos os processos concordam que primeiro o evento a ocorreu e depois disto, o evento b ocorreu. Esta relao pode ser observada em duas situaes:
Se a e b so eventos no mesmo processo, e a ocorre antes de b, ento a b verdadeiro. Se a o evento de uma mensagem sendo enviada por um processo, e b o evento da mensagem sendo recebida por outro processo, ento a b tambm verdadeiro.

Algoritmo de Lamport
21

A relao acontece-antes transitiva, logo: se a b e b c, ento a c Se dois eventos x e y, acontecem em diferentes processos que no trocam mensagens, ento x y no verdadeiro, nem y x verdadeiro. Estes eventos so ditos concorrentes, o que significa que nada pode ser dito sobre quando eles aconteceram.

Algoritmo de Lamport
22

necessrio um modo de medio de tal forma que para todo evento a, possa ser assumido que ele ocorreu em um tempo C(a) no qual todos os processos concordem. Se a b, ento C(a) < C(b).

Algoritmo de Lamport
23

P0 0

P1 0 m1 8 16 24 32 40 48 56 m4 64 72 80 m3 m2

P2 0 10 20 30 40 50 60 70 80 90 100

6
12 18 24 30 36 42 48

54
60

Algoritmo de Lamport
24

P0 0

P1 0 m1 8 16 24 32 40 48 61 m4 69 77 85 m3 m2

P2 0 10 20 30 40 50 60 70 80 90 100

6
12 18 24 30 36 42 48

70
76

Multicast totalmente ordenado


27

Para melhoras o desempenho de consulta, um banco pode colocar cpias de uma banco de dados em cidades diferentes. Uma consulta sempre repassada para a cpia mais prxima.

Multicast totalmente ordenado


25

Multicast totalmente ordenado


26

Ordenao total de eventos: Uma operao multicast pela qual todas as mensagens so entregues na mesma ordem a cada receptor.

Cada mensagem ser enviada em multicast e sempre transportar a marca de tempo (lgico) de seu remetente; Mensagens so ordenadas em fila de cache local pela marca lgica de tempo; Quando uma mensagem recebida, a mesma adicionada a seu cache local, e uma mensagem de reconhecimento enviada em multicast; Mensagens s podem ser entregues aplicao aps reconhecimento de todos processos, apenas quando forem a primeira mensagem da fila;

Referncias
27

Tanembaum, Andrew S., Sistemas Distribudos: Princpios e Paradigmas