Você está na página 1de 25

Sincronizao em

Sistemas Distribudos
Universidade Federal do ABC
Turma:
Cincia da Computao
Prof. Dr. Francisco Isidro Massetto

Sincronizao
z
z
z

Como as regies crticas so implementadas em um


SD?
Como os recursos so alocados aos processos?
Em SO, os problemas de excluso mtua e regio
crtica so solucionados atravs de semforos ou
monitores.
Tais mtodos utilizam memria compartilhada para
implementar a soluo, portanto, impossvel de ser
feito em um SD.
Pergunta: como promover a sincronizao em um
ambiente distribudo?

Sincronizao atravs do
CLOCK
z

z
z

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:
z
z
z
z

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;
No existe relgio comum ou um tempo global.

Clock Lgico
z

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:
z
z

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.

Clock Lgico
z

Clock Lgico - consistncia interna o que


importa e no quanto eles esto prximos do
tempo real.
Clock Fsico - os clocks no podem diferir
do tempo real mais que um determinado
valor.

Clock Lgico Algoritmo de


Lamport
z

Lamport definiu a seguinte relao: acontece-antes:


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:
z

Se a e b so eventos no mesmo processo, e a ocorre antes


de b, ento ab 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 ab tambm verdadeiro.

Algoritmo de Lamport
z

A relao acontece-antes transitiva, logo:


se ab e bc, ento ac
Se dois eventos x e y, acontecem em
diferentes processos que no trocam
mensagens, ento xy no verdadeiro,
nem yx verdadeiro.
Estes eventos so ditos concorrentes, o que
significa que nada pode ser dito sobre
quando eles aconteceram.

Algoritmo de Lamport
z

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 ab, ento C(a) < C(b).

Algoritmo de Lamport

O que acontece de estranho entre as trocas


de mensagens?

Algoritmo de Lamport

Algoritmo pra Sincronizao de


CLOCK Algoritmo de Berkeley
z

Nenhuma mquina tem um receptor de Tempo


Universal Coordenado.
O Servidor de Tempo ativo, e requer,
periodicamente de cada mquina, o tempo do
seu relgio.
O Servidor de Tempo calcula a mdia dos
tempos (considerando o tempo dele mesmo) e
diz para cada mquina como ajustar seu relgio
para ter seu tempo igual mdia calculada.

Algoritmo de Berkeley

Excluso Mtua Algoritmo


Centralizado
z

A melhor maneira de se conseguir excluso mtua


em um sistema distribudo imitar o que feito no
sistema centralizado (com um nico processador).
Um processo eleito como Coordenador. Quando
um processo quer entrar na regio crtica, ele envia
uma mensagem requisitando ao Coordenador
permisso para isso.
Se nenhum outro processo est na regio crtica, o
Coordenador envia uma resposta dando
permisso.

Algoritmo Centralizado
z
z

z
z

Ao receber a mensagem o processo requisitante


entra na regio crtica.
Caso outro processo pea permisso para entrar na
regio crtica, e o Coordenador sabendo que outro
processo est na regio, no envia resposta
bloqueando este processo at que ele possa entrar
na regio.
Uma outra opo enviar uma mensagem negando
a solicitao.
Quando o processo deixa a regio, ele envia para o
Coordenador uma mensagem liberando a regio
crtica.

Algoritmo Centralizado

Excluso Mtua Algoritmo


Distribudo
z

O Algoritmo centralizado tem o problema de uma


falha no Coordenador inviabilizar o mecanismo
(todo elemento centralizador um ponto crtico de
falhas).
Algoritmo distribudo - Quando um processo quer
entrar na regio crtica, ele constri uma mensagem
contendo o nome da regio, nmero do processo e
o tempo corrente.
A mensagem enviada para todos os outros
processos. Quando um processo recebe uma
mensagem de requisio de outro processo sua
ao vai depender de sua situao relativa regio
crtica

Algoritmo Distribudo
Possibilidades:

z
z

Se o receptor no est na regio crtica e no


quer entrar, ele envia de volta uma msg OK;
Se o receptor j est na regio, ele no
responde e coloca a requisio na fila;
Se o receptor quer entrar na regio crtica, mas
ainda no o fez, ele compara o tempo da msg
que chegou com o tempo da msg que ele enviou
para os outros processos. O menor tempo
vence.

Algoritmo Distribudo
z

Quando todas as permisses chegam o processo pode


entrar na regio crtica. Quando ele sai da regio crtica, ele
envia uma msg OK para todos os processos na sua fila.
Qual o problema deste algoritmo??

Excluso Mtua Algoritmo


Token Ring
z
z

z
z

construdo um anel lgico por software no qual a cada


processo atribudo uma posio no anel.
Quando o anel inicializado, o processo 0 ganha o token. O
token circula no anel (passa do processo k para o k+1). Quando
o processo ganha o token ele verifica se ele quer entrar na
regio crtica. Caso positivo, ele entra na regio, realiza o seu
trabalho e ao deixar a regio passa o token para o elemento
seguinte do anel.
No permitido entrar em uma segunda regio crtica com o
mesmo token.
Se o processo no quer entrar na regio crtica ele
simplesmente passa o token. Como conseqncia quando
nenhum processo quer entrar na regio crtica o token fica
circulando pelo anel.

Algoritmo Token Ring


Processos
0

2
1

Token
n
4

9
5
8
7

Algoritmo Token Ring


z

Problemas:
z

Se o token perdido ele precisa ser regenerado.


A deteco de um token perdido difcil.
Se um processo falhar tambm ocorrem
problemas. A soluo fazer o processo que
recebe o token confirmar o recebimento. O
processo que falhou pode ser retirado do anel, e
o token enviado para o processo seguinte. Essa
soluo requer que todos os processos
conheam a configurao do anel.

Comparao dos Algoritmos


Algoritmo Mensagens Atrasos Problemas
Centralizado

Falha do
Coordenador

Distribudo

2.(n-1)

2.(n-1)

Falha de Qualquer
Processo

Token Ring

1 a infinito

0 a n-1

Perda do Token

Eleio do Coordenador
z

Muitos algoritmos distribudos requerem um


processo como coordenador.
Geralmente no importa qual seja o processo
coordenador, mas um deles tem que exercer
esta funo.

Algoritmo do Ditador
z

Quando um processo nota que o coordenador no


est respondendo a uma requisio, ele inicia uma
eleio. A eleio convocada por um processo P
da seguinte forma:
z

P envia uma mensagem de ELEIO para todos os


processos com nmeros maiores que o seu;
Se nenhum responde, P ganha a eleio e se torna
coordenador;
Se um processo com nmero maior responder, ele
assume a coordenao.

Algoritmo do Ditador
z

z
z
z

Quando um processo recebe uma mensagem de


ELEIO de um processo de menor nmero, ele envia
uma mensagem OK de volta indicando que ele vai tomar
o comando. Depois disso ele inicia uma eleio.
Eventualmente todos os processos abandonam a
disputa, com exceo de um que o novo coordenador.
Ele envia uma mensagem a todos os processos
avisando que o novo coordenador.
Se um processo que estava fora do ar volta, ele inicia
uma eleio. Caso ele seja o processo ativo de nmero
mais alto rodando no sistema, ele ganha a eleio e
assume a coordenao.

Você também pode gostar