Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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:
Eleito:
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
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
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
(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
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)
Continua
Continua
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
Comparao:
Tempo de Espera
Algoritmo Centralizado:
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