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

1

Sistemas Distribudos
Sincronizao
2
Sistemas Distribudos
Referncia
Sistemas operacionais modernos Andrew
S. TANENBAUM Prentice-Hall, 1995
Seo 11.1 pg. 316 - 325
2
3
Sistemas Distribudos
Contedo
Relgios lgicos
Algoritmo de Lamport
Relgios fsicos
Algoritmos para sincronizao de relgio
Algoritmo de Cristian
Algoritmo de Berkeley
Algoritmo baseado na mdia
Sistema com vrias fontes externas
4
Sistemas Distribudos
Sincronizao atravs do relgio
Sincronizao:
sistemas distribudos sistemas centralizados
Sistemas distribudos utilizam algoritmos
distribudos no conveniente coletar todas
as informaes sobre a situao corrente
para ento tomar as decises
3
5
Sistemas Distribudos
Sincronizao atravs do relgio
Propriedades dos algoritmos distribudos:
1. Informaes espalhadas em diversas mquinas
2. Processos decidem baseados em informaes
locais
3. Deve ser evitado um nico ponto de falha
4. No existe relgio global
Ex.: um nico processo gerenciando acesso
a E/S
Ex.: programa make
6
Sistemas Distribudos
Sincronizao atravs do relgio
4
7
Sistemas Distribudos
Por que necessrio a sincronizao de clocks?
A ordem cronolgica entre 2 eventos
importante.
Clock Lgico: consistncia interna
entre os clocks
Clock Fsico: consistncia interna
entre os clocks e com o tempo real
Qual a soluo para a sincronizao de clocks?
Algoritmos de Lamport, Cristian, Berkeley e Daemon Time-Manager
Sincronizao atravs do relgio
8
Sistemas Distribudos
Relgios lgicos
Temporizador: dispositivo baseado em cristal
de quartzo que oscila em uma freqncia
bem definida. Dois registradores so
associados ao temporizador:
contador: quando chega a zero gera interrupo
reteno: valor carregado no contador
Escorregamento de clock: diferenas entre
as freqncias dos cristais que fazem com
que os clocks percam o sincronismo.
5
9
Sistemas Distribudos
O que CLOCK?
Cristal de quartzo;
Registrador Contador;
Registrador de Reteno;
1 0 1 1 0
1 1 1 1 1
reteno
contador
0 0 0 0 0
1 1 1 1 1
CLK
reteno
contador
1 1 1 1 1
1 1 1 1 1
reteno
contador
CLK CLK
INT
CPU CPU CPU
Relgios lgicos
10
Sistemas Distribudos
Relgios lgicos
possvel sincronizar TODOS os relgios
para obter um tempo padro nico?
Lamport (1978):
se 2 processos no interagem no necessrio
sincronismo
no preciso que todos os processos estejam
de acordo com o valor exato do tempo mas
apenas sobre a ordem em que os eventos
acontecem
6
11
Sistemas Distribudos
Relgios lgicos
Relgios lgicos: medem a passagem do
tempo mas no precisa estar com o valor
igual ao da hora oficial
Relgios fsicos: dispositivos que no podem
diferir da hora oficial mais do que um
determinado valor
12
Sistemas Distribudos
Algoritmo de Lamport
Relao acontecimento-anterioridade: a b
(a acontece antes de b). Pode ocorrer em 2
situaes:
Se a e b so eventos do mesmo processo, e se
a ocorre ante de b, ento a b verdadeira.
Se a o evento de uma mensagem sendo
enviada e b o evento da mesma mensagem
sendo recebida , ento a b verdadeira.
7
13
Sistemas Distribudos
Algoritmo de Lamport
Relao transitiva:
se a b e b c ento a c
Eventos concorrentes:
se x e y so eventos que acontecem em
processos distintos que no trocam mensagens
(nem mesmo indiretamente) ento nada pode
ser dito sobre x y e y x.
Se a b ento C(a) < C(b)
O tempo medido pelo clock crescente.
Para corrigi-lo deve-se somar.
14
Sistemas Distribudos
Algoritmo de Lamport
8
15
Sistemas Distribudos
Algoritmo de Lamport
Com uma pequena modificao, cumpre os
requisitos para a implementao do tempo
global:
Entre 2 eventos, o clock precisa rodar pelo menos 1
vez (mesmo que os eventos aconteam em rpida
sucesso)
Como 2 eventos no podem nunca ocorrer
exatamente no mesmo instante, deve-se juntar o
nmero do processo no qual o evento ocorre aos bits
de mais baixa ordem do tempo
16
Sistemas Distribudos
Algoritmo de Lamport
Podemos atribuir o tempo de todos os
eventos sujeito s seguintes condies:
1. Se a ocorre antes de b no mesmo processo,
ento C(a) < C(b).
2. Se a e b so envio e recepo de uma
mensagem, ento C(a) < C(b).
3. Para quaisquer eventos a e b, C(a) C(b).
9
17
Sistemas Distribudos
Relgios fsicos
Trnsito do sol: evento do Sol alcanando
seu ponto de maior altura no cu
Dia solar: intervalo entre 2 trnsitos
consecutivos
Segundo solar: dia solar/86.400
86.400 = 24 * 3600
Segundo solar mdio: dia solar mdio/86.400
(necessrio pois o dia solar varia)
18
Sistemas Distribudos
Relgios fsicos
Relgios atmicos de csio: tempo para que
o csio 133 faa 9.192.631.770 transies
86.400 segundos TAI (Tempo Atmico
Internacional) , atualmente, 3ms menor que
o dia solar
Foram introduzidos os segundos bissextos
(quando a diferena atinge 800 ms) UTC
(Tempo Universal Coordenado)
O UTC est substituindo o GMT (Tempo
Mdio de Greenwich)
10
19
Sistemas Distribudos
Relgios fsicos
20
Sistemas Distribudos
Relgios fsicos
Disponibilizao do UTC:
Estao de rdio de ondas curtas prefixo
WWV (NIST)
Satlite GEOS
Servio na Internet: time.nist.gov
11
21
Sistemas Distribudos
Algoritmo para sincronizao de relgio
Como manter o sincronismo dos relgios das
mquinas de um sistema distribudo?
Todas as mquinas possuem um
temporizador que causa H interrupes por
segundo. Quando o temporizador expira
adiciona-se 1 no clock.
Idealmente em uma mquina p:
C
p
(t
UTC
) = t
UTC
22
Sistemas Distribudos
Algoritmo para sincronizao de relgio
12
23
Sistemas Distribudos
Algoritmo de Cristian
Servidor de tempo: mquina
sincronizada com um servio que
fornece o tempo UTC.
Periodicamente cada mquina envia
uma mensagem para o servidor de
tempo. O servidor responde com o
tempo corrente C
UTC
.
24
Sistemas Distribudos
Algoritmo de Cristian
Cliente
Servidor
Requisio R
UTC
T
0
T
1
13
25
Sistemas Distribudos
Algoritmo de Cristian
Problema: o tempo nunca pode andar para
trs mudana do tempo feita
gradativamente.
Ao invs de se adicionar 10 ms a cada
interrupo adiciona-se 9 ms at atingir o
valor corrigido.
Pode-se utilizar o mesmo esquema para
adiantar o relgio.
26
Sistemas Distribudos
Algoritmo de Cristian
Outro problema: a requisio e a resposta
gastam um tempo no nulo. E este tempo
pode variar.
Pode-se estimar o tempo que a mensagem
gastou para retornar fazendo:
( T
1
- T
0
) / 2
Ou ainda, se soubermos o tempo que o
servidor gasta para processar a requisio:
( T
1
- T
0
- I ) / 2
14
27
Sistemas Distribudos
Algoritmo de Berkeley
Algoritmo adotado no UNIX Berkeley: se
nenhuma mquina est sincronizada com o
tempo UTC:
1. o servidor de tempo consulta todas as mquinas
2. calcula a mdia dos tempos
3. informa a cada mquina se ela deve adiantar ou
atrasar o relgio
28
Sistemas Distribudos
Algoritmo de Berkeley
15
29
Sistemas Distribudos
Algoritmo baseados na mdia
Algoritmo descentralizado
Divide-se o tempo em intervalos fixos de
ressincronizao (i-simo intervalo):
Incio: T
0
+ iR
Fim: T
0
+ (i+1)R
T
0
: tempo conhecido por todas as mquinas
R: parmetro do sistema
30
Sistemas Distribudos
Algoritmo baseados na mdia
Em cada intervalo todas as mquinas
devem:
1. Enviar uma mensagem de broadcast com seu
tempo corrente.
as mensagens no vo ser emitidas ao mesmo tempo
2. Iniciar um temporizador para coletar todas as
outras mensagens.
3. Calcular o tempo corrente com os valores
coletados
ex.: calcular a mdia dos valores podendo descartar os
valores muito alto ou muito baixos
16
31
Sistemas Distribudos
Sistema com vrias fontes externas
de tempo
No caso de sistemas distribudos onde seja
necessria uma sincronizao muito precisa
pode-se utilizar vrias fontes conectadas a
servios de UTC.
Como calcular o tempo baseado nos vrios
servidores de tempo?
Estabelece-se intervalos de valores vlidos
para o tempo UTC.
32
Sistemas Distribudos
Sistema do DCE (Distributed Computing
Environment) da OSF (Open Software
Foundation):
1. Cada servidor de tempo envia um broadcast
periodicamente
2. Cada mquina, quando obtm os intervalos de
UTC, descarta os valores muito fora do esperado
3. Calcula a interseo dos intervalos vlidos
4. Ajusta o seu relgio para coincidir com o ponto
mdio deste intervalo
Sistema com vrias fontes externas
de tempo
17
33
Sistemas Distribudos
Tempo
Fonte de UTC 1
Fonte de UTC 2
Fonte de UTC 3
Fonte de UTC 4
Interseo
Rejeitado
Valor corrente
Sistema com vrias fontes externas
de tempo
34
Sistemas Distribudos
NTP Network Time Protocol
Desenvolvido na Universidade de Delaware
Caractersticas:
Usa o protocolo UDP e porta 123
Usa o algoritmo de Marzullo para determinar o
valor do tempo
NTPv4 pode manter um relgio com preciso de
10 milissegundos na Internet e 200
microssegundos em uma LAN
Sistema hierrquico baseado em estratos
(stratum)
18
35
Sistemas Distribudos
NTP Network Time Protocol
36
Sistemas Distribudos
NTP Network Time Protocol
Pgina oficial:
http://www.ntp.org/
Servidores do estrato 1
time.nist.gov
ntp1.rnp.br
ntps1.pads.ufrj.br
19
37
Sistemas Distribudos
Exerccios
Sistemas operacionais modernos Andrew
S. TANENBAUM Prentice-Hall, 1995
Captulo 11 Exerccios 1 - 3 (pg. 345)

Вам также может понравиться