Professional Documents
Culture Documents
Parte 2
Sistemas Distribuídos
Sumário
●
Exclusão mútua.
– Definição.
– Soluções.
– Algoritmos.
●
Eleição.
– Definição.
– Algoritmos.
Exclusão Mútua
●
Concorrência é uma questão fundamental em
SD.
– Geralmente, processos vão precisar acessar
simultaneamente os mesmos recursos.
– Como evitar que acessos concorrentes corrompam
o recurso ou o tornem inconsistente ?
– Soluções que garantam acesso mutualmente
exclusivo.
Exclusão Mútua
●
Visão geral:
– Algoritmos distribuídos de exclusão mútua possuem duas
categorias:
●
Soluções baseadas em ficha (token).
– Consegue-se exclusão mútua com a passagem de uma mensagem
especial (ficha).
– Só há uma ficha e o processo que a detém poderá acessar o recurso
compartilhado.
– Se um processo não tem interesse no acesso ao recurso a ficha é
repassada.
●
Evita inanição (starvation).
● Fácil evitar deadlocks.
Exclusão Mútua
●
Visão geral:
– Algoritmos distribuídos de exclusão mútua
possuem duas categorias:
●
Abordagem baseada em permissão:
– Um processo consegue acesso ao recurso compartilhado pelo
pedido de permissão aos outros processos do grupo.
Exclusão Mútua: algoritmo
centralizado
●
Simula o comportamento de um sistema
monoprocessador:
– Um processo é eleito como coordenador.
●
Processos solicitam acesso a recursos através do envio
de mensagens ao coordenador.
– O coordenador concede o acesso ao recurso por
meio de uma mensagem de concessão.
●
Essa mensagem é enviada quando nenhum outro
processo está acessando àquele recurso.
Exclusão Mútua: algoritmo
centralizado
(b) Processo 2 pede acesso ao recurso e o coordenador se
abstém de responder, bloqueando-o.
Será que bloquear é boa opção ? Poderia responder “Permissão negada”.
Coordenador coloca o processo 2 na fila.
●
Vantagens:
– Exclusão mútua garantida;
– Não há deadlocks e nem starvation.
– Nº de mensagens: 2(n – 1), onde n é o nº de processos.
– Não existe ponto de falha único.
Exclusão Mútua: algoritmo distribuído
●
Desvantagens:
– Ponto único de falha deu lugar a n pontos de falha.
●
Em caso de falha em qualquer processo, ele não
responderá as requisições.
●
O silêncio pode ser erradamente interpretado.
– Bloquearia todas as tentativas subsequentes de entrar em todas
as regiões críticas.
●
Uma possível solução seria sempre responder às
requisições.
– Requisitante não bloqueia e pode fazer novas tentativas com
timeouts.
Exclusão Mútua: algoritmo distribuído
●
Desvantagens:
– Como gerenciar o grupo de processos ?
●
Manter lista de associação ao grupo em cada processo;
– Processos que entram, saem e caem.
●
Ou utilizar multicast.
– Mais lento, complexo, caro em relação ao original
centralizado.
Exclusão Mútua: algoritmo token ring
●
Esquema determinístico que se baseia nas
redes token ring.
– Um anel lógico é construído em software:
●
Cada processo ocupa uma posição.
●
Posições podem ser alocadas em ordem numérica de
endereços de rede.
●
Cada processo deve saber de quem é a vez depois dele.
Exclusão Mútua: algoritmo token ring