Você está na página 1de 3

z Processos em um sistema distribudo geralmente buscam atingir

cooperao e para tanto utilizam mecanismos de sincronizao


para que esta cooperao seja realizada de maneira correta.
z Esta sincronizao pode envolver problemas de:

ALGORITMOS DISTRIBUDOS

Sistemas Distribudos

Faculdade de Informtica - PUCRS

Faculdade de Informtica - PUCRS

Algoritmos Distribudos

204

y
y
y
y

sincronizao de relgio
excluso mtua
deadlock
algoritmos de eleio

Sistemas Distribudos

205

Algoritmos Distribudos (relgio)

ALGORITMOS DISTRIBUDOS
Sincronizao de relgio

Sistemas Distribudos

Faculdade de Informtica - PUCRS

Faculdade de Informtica - PUCRS

z Cada computador possui seu prprio relgio


z Diversos processos executando necessitam uma forma de saber
qual operao foi executada primeiro

206

y Exemplo: como saber o tempo de transmisso de uma mensagem?

z Existe a necessidade de sincronizao de relgios dos diferentes


nodos.

207

Algoritmos Distribudos (relgio)

z Relgios de computadores:

Contador decrementado a cada


pulso
quando =0, gera interrupo
cada interrupo um clock tick
Registrador de armazenamento:
carregar o contador
(a cada vez que se torna zero)

208

Faculdade de Informtica - PUCRS

y Constitudo por 3 partes


Oscilador de cristal

Faculdade de Informtica - PUCRS

z ou mesmo medir o tempo necessrio para tarefas distribudas, que


comeam em um nodo e acabam em outro

Sistemas Distribudos

Algoritmos Distribudos (relgio)

Sistemas Distribudos

y Exemplo: sistema de reserva de passagens: ltimo assento em um vo deve


ser reservado pelo cliente que fez a requisio antes

z Um relgio sempre trabalha de maneira constante, pois o cristal


oscila em uma freqncia fixa
z Entretanto, cristais diferentes podem oscilar diferentemente
z Diferena pode ser pequena, mas com o passar do tempo pode
causar srios problemas
z O relgio do computador pode assim se afastar do relgio real

Sistemas Distribudos

209

Algoritmos Distribudos (relgio)

z Relgio real
z Era calculado baseado na rotao da terra em torno de seu eixo
z Terra com o passar do tempo est diminuindo sua velocidade de
rotao
z Na idade mdia diversos dias tiveram que ser retirados do
calendrio devido a este problema
z Desde 1958, o relgio real calculado por um certo nmero de
transies do Csio 133
z At 1995 houve uma diferena entre o relgio calculado atravs do
perodo de rotao da terra com o do Csio 133 de mseg. a cada
86.400 segundos
Sistemas Distribudos

Faculdade de Informtica - PUCRS

Faculdade de Informtica - PUCRS

Algoritmos Distribudos (relgio)

210

Sistemas Distribudos

Algoritmos Distribudos (relgio)

lento
gio
rel

z Consideraes

dC = 1
dt
dC < 1
dt

Faculdade de Informtica - PUCRS

rel
gio
rp
ido

Faculdade de Informtica - PUCRS

gio
rel

ito
rfe
pe

Sistemas Distribudos

212

Faculdade de Informtica - PUCRS

tempo

Faculdade de Informtica - PUCRS

z Algoritmo centralizado para sincronizao: servidor ativo

y Servidor espera ser perguntado pela hora, e.g. hora=?


y Aps receber a mensagem informa hora=T, onde T a hora no servidor
y Se cliente enviou a mensagem no tempo T0 e recebeu a resposta no tempo
T1, ento novo horrio no cliente = T+(T1-T0)/2
y Outra estimativa pode levar em conta o tempo (I) que o servidor levou para
processar a solicitao, ou seja novo horrio no cliente = T+(T1-T0-I)/2
(importante contabilizar o tempo de transmisso)
Servidor do relgio
hora=?

hora=T

T1
Sistemas Distribudos

213

Algoritmos Distribudos (relgio)

z Algoritmo centralizado para sincronizao: servidor passivo

T0

y relgios esto sincronizados se a diferena entre os dois no for maior que


uma constante definida
y computadores devem conhecer o valor de rel gios de outros computadores
no sistema
y ao ler o valor, problemas podem acontecer durante a comunica o do valor
y Importante : relgios no devem voltar no tempo nunca, nem dar saltos muito
grandes
n aumenta-se ou diminui-se a velocidade do rel gio
n exemplo: se interrup o adiciona 8 mseg. ento pode adicionar 9 ou 7
mseg.

Sistemas Distribudos

Algoritmos Distribudos (relgio)

Mquina que
envia msg

211

Algoritmos Distribudos (relgio)

z Relgio perfeito, relgio lento, e relgio rpido


dC > 1
dt

z Relgios baseados em cristal tem uma diferena entre si de 1 seg.


a cada 100.000 segs., ou seja 1 seg. a cada 11,6 dias.
z Desta forma o relgio do computador deve ser resincronizado
periodicamente.
z Suponha t hora real, e tempo de um relgio p como Cp(t)
z Se todos relgios forem perfeitamente sincronizados ento Cp(t) = t
para todos p e todos t
z Idealmente dC/dt = 1
z Como isto no possvel, define-se um que representa o mximo
que o relgio desvia de dC/dt, ou seja (1- ) (dC/dt) (1+ )

214

y sevidor broadcasts o valor da hora para todos computadores periodicamente


y em geral servidor sabe o tempo de transmisso entre servidor e
computadores
y desta forma periodicamente ele envia hora=T+Ta, onde Ta o tempo de
transmisso para cada um dos computadores

z Variao: Algoritmo Berkeley

y periodicamente o servidor pergunta o horrio dos computadores


y quando tem os valores, faz uma mdia e informa os computadores a
diferena dos relgios deles em relao a nova mdia

Sistemas Distribudos

215

Algoritmos Distribudos (relgio)

Algoritmos Distribudos (relgio)

z Algoritmo distribudo para sincronizao: mdia global

z Algoritmo distribudo para sincronizao: mdia local

y Neste algoritmo cada processo broadcasts uma mensagem com o valor de


seu relgio em um T0+iR, para todos os outros processos no sistema

Faculdade de Informtica - PUCRS

n
n

T0 um valor combinado no passado


i representa os intervalos que os processos iro sincronizar seus relgios
R representa o tamanho do intervalo para a sincronizao acontecer

Faculdade de Informtica - PUCRS

y Aps fazer o broadcast, o processo espera um intervalo T para receber as


mensagens de outros processos
y Aps o intervalo T, o processo ento recalcula o seu relgio utilizando os
valores que recebeu dos outros processos
y variaes: descarte de valores fora de limite aceitvel (altos ou baixos)

Sistemas Distribudos

216

y O algoritmo anterior necessita um sistema de broadcastpara funcionar


y Assim ele bom para pequenas redes
y No algoritmo de mdia local, cada processo troca informaes com os
processos vizinhos e calcula o seu novo horrio a partir dos valores que
recebeu de seus vizinhos

Sistemas Distribudos

217