Professional Documents
Culture Documents
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.
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
o tempo atravs de contagens de transies do csio 133 (1 segundo solar mdio = 9.192.631.770 transies).
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
Problema:
86.400
segundos TAI equivalem a aproximadamente 3ms a menos que um dia solar mdio.
extras a cada 800ms acumulados
Soluo:
Segundos
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.
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:
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
Soluo:
Corrigir
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
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.
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