Escolar Documentos
Profissional Documentos
Cultura Documentos
Distribudos
Parte 05
Sincronizao
O Problema da
Sincronia de Tempo
No h garantias de que dois ou mais
processos cooperantes interpretem a
contagem de tempo igualmente
Cada processo pode estar em uma
mquina diferente, o que significa que
cada um pode estar usando um relgio
fsico diferente
No h como garantir que os dois relgios
esto exatamente sincronizados (na
verdade, isso quase impossvel)
O Problema da
Sincronia de Tempo
Que problemas isso pode gerar?
No h como garantir a troca de
mensagens sncrona
O Problema da
Sincronia de Tempo (cont.)
Como solucionar o problema?
Opo 1: Soluo Centralizada
Funcionamento: Todos os processos
envolvidos em determinada atividade usam
como referncia uma nica fonte de tempo
(um relgio nico, um processo,...)
Vantagem:
A garantia de que todos esto obtendo a
informao de tempo no mesmo lugar, o que
evita informaes inconsistentes
O Problema da
Sincronia de Tempo (cont.)
Como solucionar o problema?
Opo 1: Soluo Centralizada
Problemas:
A fonte nica de tempo tambm um ponto nico
de falha, ou seja, diante de uma pane na fonte de
tempo todos os processos so comprometidos
Dependendo da quantidade de processos
envolvidos, a fonte de tempo pode se
sobrecarregar com a quantidade de mensagens
de/para ela
As mensagens com informaes de tempo podem
sofrer atrasos imprevisveis durante seu trfego na
rede, comprometendo a exatido
O Problema da
Sincronia de Tempo (cont.)
Como solucionar o problema? (cont.)
Opo 2: Soluo Distribuda
Funcionamento:
Vrios processos se encarregam de regular
as informaes de tempo, comparando e
fazendo ajustes entre si
O Problema da
Sincronia de Tempo (cont.)
Como solucionar o problema? (cont.)
Opo 2: Soluo Distribuda
Vantagem:
No h um ponto nico de falha. A queda de um
nico processo no interfere na sincronizao do
tempo entre os demais
Maior disponibilidade da informao de tempo, j
que no h uma fonte nica
Problemas:
Maior complexidade para implementar a soluo
Quantidade varivel de mensagens (nem sempre
previsvel)
O Problema da
Sincronia de Tempo (cont.)
Como solucionar o problema? (cont.)
A opo distribuda (opo 2) a mais
adequada para ambientes distribudos porque:
As informaes relevantes ao processo esto
dispersas por vrias mquinas
Cada processo deve tomar decises baseado
somente em informaes locais
A existncia de um ponto nico de falha deve ser
evitada sempre que for pssvel
No existe um relgio nico para todas as mquinas
Relgios Lgicos
Em algumas tarefas distribudas, o
tempo real no importante.
O foco do controle de tempo voltado
para a correta sequncia de eventos que
deve acontecer
A informao de tempo neste caso
usada como um contador de eventos,
que determina o que deve acontecer
a cada momento
Relgios Lgicos
Em 1978, Leslie Lamport publicou uma proposta de
ordenao de eventos baseada em tempo, onde:
No h tempo absoluto toda a informao de
tempo relativa entre os processos que trocam
mensagens
Se dois processos no interagem entre si, no h
necessidade de sincronizao de tempo entre eles
Na maioria das vezes necessrio que os
processos concordem com a informao de tempo
entre eles, mas este tempo no precisa ser real
Algoritmo de Lamport
Funcionamento do algoritmo:
Cada processo cooperante tem seu prprio relgio lgico (independente
do tempo real), que serve como contador de eventos
Cada evento ocorrido incrementa uma unidade de tempo no contador
Cada mensagem trocada entre dois processos cooperantes contm uma
informao de tempo (relgio lgico) fornecida pelo emissor da
mensagem
O processo receptor compara a informao de tempo contida na
mensagem com seu prprio relgio lgico:
Se seu relgio lgico possuir um valor maior que o tempo contido na
mensagem, o relgio permanece com o mesmo valor
Se seu relgio lgico possuir um valor menor ou igual que o tempo
contido na mensagem, o relgio ajustado e passa a ter o valor da
mensagem mais um
Isso garante que dois eventos nunca aconteam ao mesmo tempo
Algoritmo de Lamport
(exemplo)
Algoritmo de Lamport
(exemplo)
Cada mensagem trocada entre os processos precisa
conter o valor que o relgio fsico de seu emissor para
que o receptor faa os ajustes necessrios
No
No
No
No
instante
instante
instante
instante
2
4
7
9
a
a
a
a
mensagem
mensagem
mensagem
mensagem
A enviada de P1 para P2
B enviada de P2 para P3
C enviada de P3 para P2
D enviada de P2 para P1
Algoritmo de Lamport
(exemplo)
Instante
Relgio P1
Relgio P2
Relgio P3
10
3 No necessita 12
de ajuste
4 no relgio 18
16
20
24
32
30
40
36
48
42
61
48
10
11
6
7
Necessita
de ajuste
no relgio
Mensagem
A (6)
24
em
Mensag
D (69)
Mensa
g
30
em B (
24)
40
50
0)
em C (6
g
a
s
n
e
M
60
70
69
80
70
77
90
76
85
100
Problema no
Algoritmo de Lamport
Considere:
R(e1) o valor do relgio lgico para o evento e1
R(e2) o valor do relgio lgico para o evento e2
A soluo porposta por Lamport no garante que se R(e1) <
R(e2) ento o evento e1 acontece antes que o evento e2
Exemplo:
Processo P1
Processo P2
Processo P3
Msg A (1)
2
3
4
Msg C (3
)
Msg B (4)
12
Soluo Vetorial
(Mattern e Fidge)
Soluo Vetorial
(Mattern e Fidge)
Funcionamento
Antes de cada evento em um processo, este incrementa mais 1 no valor de
sua posio no vetor
Sempre que uma mensagem enviada, o processo inclui uma cpia de seu
vetor na mensagem
No recebimento de uma mensagem, o processo atualiza o seu vetor a
partir do vetor da mensagem.
Ao receber uma mensagem, o processo faz uma operao de
integrao (merge) entre o vetor recebido e seu prprio vetor local,
atualizando os dados deste ltimo
Sua posio no vetor assume o valor mximo existente no vetor da
mensagem
O valor do contador correspondente ao emissor incrementado em
uma unidade caso seu valor local j no seja maior que o recebido;
Uma vez atualizado o vetor local, possvel determinar a ordem dos
eventos comparando-se o valor de cada posio dos vetores em cada
evento
Soluo Vetorial
Desvantagem da soluo:
Ocupa-se mais espao de armazenamento e
carga til da mensagem
Relgios Fsicos
O algoritmo de Lamport e as demais solues de relgios
lgicos se preocupam apenas com a ordenao de
eventos
Os instantes de tempo associados a cada evento no so
necessariamente prximos do tempo em que os eventos realmente
aconteceram
Evoluo da Marcao de
Tempo
Primeiras solues para marcao
de tempo
Relgios de sol, estaes do ano, ...
Dia solar: intervalo decorrido entre
duas passagens consecutivas do Sol
em determinado ponto do cu
Evoluo da Marcao de
Tempo
Dcada de 1940: Ajustes para
compensar imprecises
Foram feitos ajustes artificiais na
marcao oficial de tempo para
compensar imprecises resultantes de
fenmenos naturais que influenciam
diretamente nas fontes de tempo
utilizadas
Descobriu-se que a rotao da terra
no constante, devido s mars e
a atmosfera (desaceleram a rotao
da Terra)
A durao do ano (em dias) diminuiu
(os dias ficaram mais longos)
O turbulncias no ncleo do planeta
influenciam no comprimento do dia
Evoluo da Marcao de
Tempo
Em 1948: inveno do
relgio atmico
Contagem de segundos a
partir das transies de
eltrons de um tomo de
Csio 133
uma medida mais
precisa e constante,
que no sofre
influncias externas
Evoluo da Marcao de
Tempo
Atualmente:
TAI (Tempo Atmico Internacional)
Mdia de tempo dos relgios atmicos
mais preciso, porm ainda necessrio ajust-lo a
contagem de tempo solar adotada no dia-a-dia
Evoluo da Marcao de
Tempo
Relgio Atmico Brasileiro (USP)
Evoluo da Marcao de
Tempo
NIST
National Institute of Standards and
Technology
Evoluo da Marcao de
Tempo
GEOS
Algoritmo de Cristian
Funcionamento:
Usa um servidor de tempo, que um computador equipado
com receptor UTC
As demais mquinas enviam mensagens para o servidor de
tempo perguntando pelo tempo corrente
O servidor de tempo responde o mais rpido possvel, com
uma mensagem contendo o tempo UTC corrente
Cada mquina, ao obter a resposta, ajusta seu clock
O servidor de tempo PASSIVO. O ajuste depende da
inciativa das demais mquinas
Problemas:
O tempo nunca pode andar para trs (os ajustes so sempre
progressivos)
A consulta ao servidor de tempo gasta um tempo no-nulo (o
retardo pode vir a ser grande)
Outra soluo:
Realizar vrias medidas e calcular a mdias de tempo
(descartando valores fora de um certo limite)
Algoritmo de Berkeley
Funcionamento
O servidor de tempo uma entidade ATIVA, que consulta periodicamente cada
uma das mquinas do sistema para saber o tempo corrente em cada uma delas
Baseado nas respostas obtidas:
Algoritmo de Berkeley
A preciso deste algoritmo tambm
depende do tempo mximo gasto
pelas mensagens de ida e volta
Indicado para:
Quando nenhuma das mquinas tem um
receptor UTC
A necessidade de preciso no ambiente
pequena
Algoritmo de Berkeley
(cont.)
Problemas:
O ajuste do servidor de tempo deve ser
feito periodicamente por um operador
(de forma manual)
uma soluo altamente centralizada
Para contornar esta fragilidade, ao se
perceber que o servidor de tempo falhou,
elege-se outro servidor para o seu lugar
O problema agora passa a ser como
determinar que o servidor de tempo falhou
Servidores Secundrios
Servidores que se sincronizam com os servidores primrios
Demais servidores
Organizados em uma estrutura de rvore
Cada galho se sincroniza com sua raiz
A rvore composta de sub-redes de sincronizao
Modo 3: Simtrico
Adotado em mquinas cujo stratum baixo
a opo mais precisa
Os servidores trocam mesagens de tempo
entre si e as informaes so armazenadas
para uso posterior visando melhorar cada
vez mais a sincronia