Sei sulla pagina 1di 28

Sistemas

Distribudos

Parte 06
Excluso Mtua

Introduo
Assim como em sistemas centralizados, os
sistemas distribudos enfrentam o
problema de gerenciar recursos
compartilhados sem comprometer sua
consistncia
Dois ou mais processos no podem
acessar dados compartilhados ao mesmo
tempo
Ou seja, o acesso feito por meio de
excluso mtua

Introduo
Em sistemas centralizados criou-se o conceito
de regio crtica, que funciona da
seguinte forma:
Para que um processo seja autorizado a entrar no
estado de regio crtica, nenhum outro processo
pode fazer isso
Deste modo fica garantida a excluso mtua em
um recurso compartilhado
Os sistemas centralizados mantm esta estrutura
de acesso funcionando por meio de mecanismos
como semforos, monitores e outras solues
similares

Introduo
Qual o problema em usar essas solues nos
SDs?
Todas estas solues se baseiam na existncia de:
Relgio nico: Os eventos em cada processo
acontecem sincronizados pelo mesmo relgio
Memria compartilhada: Toda a informao
de controle armazenada na memria
compartilhada est facilmente disponvel para
qualquer processo envolvido
Em sistemas distribudos no meios de garantir
que nenhuma das duas condies v acontecer

Introduo(cont.)
preciso implementar outro tipo de soluo
baseada na forma de comunicao adotada:
a troca de mensagens
Mas as caractersticas de excluso mtua e regio
crtica devem ser preservadas

Como voc resolveria o problema de excluso


mtua e regio crtica sem abrir mo das suas
caractersticas fundamentais?
- Discuta propostas em sala

Solues para Excluso


Mtua
Veremos trs possibilidades:
Opo 1: Algoritmo Centralizado

Uma implementao usando troca de mensagens, mas


mantendo as mesmas caractersticas de ambientes
monoprocessados

Opo 2: Algoritmo Distribudo


Uma alternativa que elimina a centralizao caracterstica da
opo 1

Opo 3: Algoritmo em Anel


Outra soluo descentralizada, mas com abordagem diferente
da opo 2

Algoritmo Centralizado
Objetivo
Simular a metodologia de um sistemas
monoprocessado, ou seja, centralizar o
controle em um processo coordenador
Existem vrias formas de se obter um
coordenador, mas o algoritmo no se preocupa
em exigir uma nica forma de fazer isso,
apenas deve garantir a existncia do
coordenador e um funcionamento padronizado
perante os processos que interagem com ele

Algoritmo Centralizado
Preparao
preciso existir um processo coordenador para este
algoritmo. O coordenador pode ser:
Esttico:

existir de forma independente, sem ter sua existncia


vinculada a uma nica situao de excluso mtua
(prestando apenas o servio de coordenao)

Eleito:

Eleito pelos processo participantes usando um algoritmo


distribudo (o funcionamento do algoritmo ser discutido
futuramente)
O critrio usado na eleio no vem ao caso (endereo
de rede, identificao do processo, idade do processo,...)

Algoritmo Centralizado
Funcionamento
Quando um processo deseja entrar em regio crtica ele
envia uma mensagem para o coordenador solicitando
permisso
Se nenhum outro processo estiver executando sua
regio crtica o coordenador envia uma mensagem de
resposta ao solicitante autorizando a entrada em regio
crtica
Se algum processo estiver executando a regio
crtica
O coordenador no responde
O processo solicitante fica aguardando a resposta
A requisio do processo solicitante colocada em uma
fila

Algoritmo Centralizado
Funcionamento (cont.)
Quando o processo deixa a regio crtica
ele envia uma mensagem ao coordenador
abrindo mo de seu acesso
O coordenador envia uma mensagem
concedendo a permisso ao primeiro processo
da fila

Algoritmo Centralizado
(cont.)
Caractersticas do algoritmo:
justo
Requisies so atendidas por ordem de chegada

Nenhum processo espera indefinidamente


A menos que ocorra algum tipo de falha, o que
no faz parte do funcionamento normal do
algoritmo

fcil de ser implementado:


Necessita de apenas 3 mensagens (requisio,
permisso e liberao) para se garantir o acesso
a determinada regio crtica

Algoritmo Centralizado
(cont.)
Problemas do algoritmo:
O coordenador um ponto nico de
falha, o que uma condio indesejvel
em um SD
Se coordenador no responde em caso de
permisso negada:
Processos bloqueados no tm como distinguir
a situao coordenador fora do ar da
situao permisso de acesso negado

Para sistemas muito grandes:


um nico coordenador pode degradar a
performance do sistema (gargalo)

Algoritmo Centralizado
IMPORTANTE:
A descrio do funcionamento dos algoritmos
de excluso mtua (todos no apenas o
centralizado) consideram uma situao
ideal, onde no est prevista a ocorrncia
de falhas nas entregas das mensagens ou
trmino anormal de processos.
O tratamento de possveis falhas varia de
acordo com a implementao de cada soluo,
mas na maioria das vezes se baseia em
controle de timeout e retransmisso de
mensagens

Algoritmo Distribudo
Funcionamento:
Quando um processo deseja entrar em
uma regio crtica, envia mensagem
para todos os processos (inclusive
ele prprio) contendo o nome da regio
crtica, seu prprio nmero
(identificao) e o tempo corrente
(continua)

Algoritmo Distribudo
Funcionamento (cont.):
Quando um processo recebe uma
mensagem de requisio:
Se o receptor no estiver executando a
regio crtica e no deseja executar:
Envia de volta ao transmissor um mensagem de OK

Se o receptor estiver executando a


regio crtica:
No deve responder (deixa o solicitante esperando) e
guarda a requisio em uma fila

(continua)

Algoritmo Distribudo
Funcionamento (cont.):
Quando um processo recebe uma mensagem de
requisio (continuao):
Se o receptor tambm deseja executar a regio
crtica, mas ainda no iniciou:
Compara o tempo da mensagem recebida com o
tempo da mensagem de requisio que ele enviou
Se o tempo da mensagem recebida for
menor envia um OK ao transmissor
Se o tempo de sua prpria mensagem for
menor coloca a requisio recebida em uma fila
e no responde

(continua)

Algoritmo Distribudo
Funcionamento (cont.):
Aps enviar uma requisio para executar
uma regio crtica aguarda at que todos
os demais processos lhe deem permisso
Ao terminar a execuo da regio crtica
envia mensagem de OK a todos os processo
de sua fila

Algoritmo Distribudo
Caractersticas do algoritmo:
Exige ordenao global de todos os
eventos do sistema
Para qualquer par de eventos, deve
haver um consenso sobre qual deles
aconteceu antes
Baseado no algoritmo de Lamport
para sincronizao de relgios lgicos

Algoritmo Distribudo
Caractersticas do algoritmo (cont.):
Nenhum processo espera
indefinidamente (no h starvation)
No h impasses (deadlocks)
Nmero de mensagens por entrada na
regio crtica:
2 (n-1) mensagens
Onde n o nmero de processos do sistema

Algoritmo Distribudo
Problemas do algoritmo:
O ponto nico de falha foi substitudo por n
pontos de falha
A falha de um processo bloqueia todas as tentativas
subsequentes de acesso regio crtica

O trfego gerado na rede muito maior


Em sistemas muito grandes todos os
processos se tornam possveis gargalos

Algoritmo Distribudo
Problemas do algoritmo
Ou seja:
Este algoritmo funciona melhor para
pequenos grupos de processos
Podemos aumentar a eficincia do algoritmo
com duas pequenas alteraes:
1. Envio de mensagem de negao de acesso
regio crtica (problema: mais mensagens)
2. O processo pode entrar na regio crtica
quando obtiver a permisso da maioria dos
processos (muito arriscado)

Algoritmo Token Ring


Preparao
Construo de um anel lgico (ordenao de
processos)
Atribui-se a cada processo uma posio no anel
No importa o critrio de ordenao (ordem
numrica de endereos de rede, nmero de
processo, ou qualquer outro meio
conveniente)
O importante que cada processo conhea
o prximo na sequncia

Continua

Algoritmo Token Ring


Funcionamento:
Quando o anel inicializado o processo 0 (primeiro)
recebe um basto (token)
O token fica circulando no anel, obedecendo a
ordenao estabelecida
Se um processo estiver de posse do token e deseja
entrar em uma regio crtica:
Executa a regio crtica (no permitido que ele entre em
uma segunda regio crtica)
Ao terminar a execuo da regio crtica envia o token ao
seu vizinho

Continua

Algoritmo Token Ring


Funcionamento (cont.):
Se um processo estiver de
posse do token e NO
deseja entrar em uma
regio crtica:

Envia o token ao seu


vizinho

Algoritmo Token Ring


Caractersticas do algoritmo:
No h ocorrncia de starvation
Quando um processo deseja entrar em
uma regio crtica, o que pode
acontecer de pior ter que esperar que
todos os processos antes dele executem
alguma regio crtica

Algoritmo Token Ring


Problemas do algoritmo:
Se o token se perder h a necessidade de se
criar um novo
difcil detectar a perda do token:
O fato do token no aparecer por muito
tempo no significa que ele esteja perdido
Se algum processo falhar, seu vizinho deve
identificar a falha e remov-lo do anel
Para isso, necessrio que todos
conheam a configurao do anel (quais
os integrantes)

Comparao:
Quantidade de Mensagens

Algoritmo Centralizado:
Mais simples e mais eficiente
Nmero de mensagens por entrada na regio crtca:
Apenas 3 (requisio, autorizao e liberao)

Algoritmo Distribudo:
Nmero de mensagens por entrada na regio crtca :
2(n-1) mensagens, sendo (n-1) requisies e (n-1) autorizaes

Algoritmo Token Ring:


Nmero de mensagens por entrada na regio crtca:
varivel e imprevisvel

Se todos os processos desejam entrar em regio crtica:


necessita de apenas 1 mensagem
Se ningum desejar entrar em regio crtica:
imprevisvel (o token pode circular por horas sem que
haja nenhum processo interessado)

Comparao:
Tempo de Espera

(medido em quantidade de mensagens)

Algoritmo Centralizado:
Retardo (tempo de espera) para entrar na regio crtica:

Apenas o tempo de 2 mensagens


Algoritmo Distribudo:
Retardo (tempo de espera) para entrar na regio crtica:

O tempo equivalente a 2(n-1) mensagens


Algoritmo Token Ring:
Retardo (tempo de espera) para entrar na regio crtica:

O tempo varia:
O token acaba de chegar: 0 mensagens
O token acaba de ser passado: n-1 mensagens

Potrebbero piacerti anche