You are on page 1of 2

Sincronizao em Sistemas Distribuidos

Resumo do captulo Synchronization in Distributed Systems


Mestrado de Informtica Aplicada, PUC-PR
Hugo Simio e Slvio Bortoleto (maio/2001)

Problemas de sincronizao em um sistema de uma nica CPU so geralmente resolvidos usando


mtodos como semforos e monitores. J em sistemas distribuidos onde no haja sincronizao
entre as diversas mquinas que o integram, podem surgir muitos problemas. Processos podem ser
executados em ordem inadequada, causando resultados inadequados, erros e travamentos. Em
sistemas distribudos os problemas de sincronizao exigem solues especficas. Algortmos
distribuidos tm, em geral, as seguintes propriedades:

1. As informaes relevantes esto dispersas em vrias mquinas.


2. Processos tomam decises baseados apenas em informao local.
3. Um nico ponto de falha no sistema (que possa derrubar o sistema) deve ser evitado.
4. No existem relgios ou outras fontes precisas de tempo global.

Normalmente, em sistemas distribudos no possvel ou desejvel obter as informaes


necessrias sincronizao em um nico local (centralizador). E mesmo que isso seja feito, diversos
problemas ainda podem persistir.

J foi provado que os mtodos de medio do tempo baseados no znit solar permitem e acumulam
desvios. Essa situao foi em parte contornada com a adoo de mtodos mais precisos, baseados
na regularidade do nmero de transies que o tomo de Csio 133 realiza em uma unidade de
tempo (relgios atmicos). Inclusive existem, em diversos pases, servios de acesso pblico que
informam a hora precisa, a partir de relgios atmicos (esses relgios, dos quais existem poucas
dezenas no mundo , tambm devem estar sincronizados entre si).

Um problema adicional que mesmo os relgios atmicos tm que ser ajustados de tempos em
tempos, para corrigir distores mnimas que acumulam.

Os algortmos propostos para a sincronizao de sistemas distribuidos tm uma base comum.


Assume-se que cada mquina tem o seu prprio mecanismo de tempo (timer e processos
relacionados) que avana o seu relgio de software. E que esse mecanismo tambm causador de
um certo nvel de distoro. Assim, em um sistema distribuido, regularmente h necessidade de
resincronizar os relgios (software). O desafio sincronizar os relgios de todas as mquinas para
um mesmo padro de tempo. Em 1978 Lamport mostrou que essa sincronizao possvel e
apresentou um algortmo para faz-lo. Lamport mostrou que a sicronizao no precisa ser absoluta.
Se dois processos no interagem, no h necessidade de um sincronismo total. Ele mostrou que h
situaes onde pode ser mais importante que os processos acertem a ordem na qual os eventos
ocorrem. Mas, para a maioria dos casos, suficiente que as mquinas estejam com seus relgios
sincronizados. Vrios outros algortmos foram propostos, como por exemplo os de Cristian, 1989,
Drummond e Babaoglu, 1993, Kopetz e Ochsenreiter, 1987, e outros. Esses algortmos se
diferenciam basicamente pela forma como a resincronizao realizada. Alguns dos mais tpicos so
os seguintes:

Algortmo de Cristian

Este algortmo pressupe que uma das mquinas do sistema distribudo acessa um servio de
informaes da hora atmica e ajustando-se, passa a ser um servidor de tempo para as demais
mquinas do sistema, que periodicamente a consultam para ajustar seus relgios. Entretanto, h dois
problemas a resolver. O principal a distoro relativa de cada mquina em relao ao servidor de
tempo, j que os mecanismos de avano de tempo, tanto de uma como de outra mquina no so
absolutamente precisos. Outro problema que a comunicao entre essas mquinas tambm exige
um certo tempo, decorrente de fatores das prprias mquinas e dos meios que as interligam. Assim, o
algortmo prope a adoo de certos ajustes, que levam em considerao a diferena de tempo
verificada entre as mquinas, aps decorrido um certo perodo do ltimo ajuste entre elas.
No processo peridico de sincronizao tambm utilizada a mdia ajustada (devido aos reflexos de
possveis momentos de congestionamento da rede) dos tempos necessrios comunicao entre as
mquinas.

Algortmo de Berkeley

Nesse algortmo, o servidor de tempo ativo e consulta periodicamente cada uma das mquinas
sobre os valores de seus relgios. Ento calcula uma mdia das leituras realizadas e informa cada
mquina para que se ajuste, adiantando ou atrasando seu relgio. Essa mdia pode ser simples ou
ajustada, desprezando-se valores extremos, o que permite contornar eventuais falhas em alguns
relgios. Tambm possvel considerar o tempo de comunicao entre as mquinas. Nesse
algortmo, no h necessidade de que o servidor de tempo consulte um servio de hora atmica.

Ambos os mtodos citados acima dependem de alguma centralizao (o servidor de tempo). S


muito recentemente existe o hardware e software necessrio para permitir sincronizao em larga
escala (por exemplo toda a Internet). E novos algortmos que utilizam relgios sincronizados esto
comeando a aparecer, como os exemplos discutidos por Liskov, 1993 (At-Most-Once-Message
Delivery e Clock-Based Cache Consistency). Esses algortmos so descentralizados, onde cada
mquina se auto ajusta em funo das mensagens (broadcast) que recebe de outras mquinas.
Trabalham diminuindo o tempo para um intervalo de tamanho fixo de resincronizao. Comea T0 + I
e avana at T0 + (I+1)R. ( T o momento e R parmetro do sistema). Comeando cada intervalo,
cada mquina envia seu horrio. Essas mensagens no acontecero ao mesmo tempo pois cada
mquina tem sua velocidade. Cada mquina coleta as mensagens das outras e calcula um novo
horrio descartando o maior e o menor. Outra variao tentar adicionar uma estimativa de
propagao de acordo com a topologia de Rede. Sistemas que sincronizam com UTC requerem
receptores WWV, GEOS e outros. Existem flutuaes de sinal, e o sistema operacional pode
estabelecer um intervalo de tempo cujo UTC falha. Para alcanar um sincronismo, nenhum
processador obter o tempo instantaneamente. H o tempo de demora entre a transmisso e a
recepo, distncia, gateway, colises e outros.

You might also like