Algoritmos de Eleição - IC

Propaganda
MC714 - Sistemas Distribuídos
Leandro Villas
Aula de Hoje
Aula Passada

Relógios Lógicos
Relógios de Lamport
Relógios Vetoriais
Aula de Hoje
Exclusão Mútua
 Algoritmos de Eleição

Leandro Villas
Exclusão mútua
Questão fundamental em SDs
• Concorrência e colaboração entre vários processos.
• Acesso simultâneo aos mesmos recursos.
• Necessário evitar que recurso seja corrompido ou torne-
se inconsistente.
Acesso mutuamente exclusivo pelos processos.
Leandro Villas
Exclusão mútua
Duas categorias de algoritmos de exclusão mútua
Soluções baseadas em ficha (token).
• Passagem de mensagem especial entre processos – ficha
• Há somente uma ficha disponível
• Quem tem a ficha pode acessar o recurso
• Ao terminar, ficha é passada diante para o próximo processo
• Se processo não precisar acessar o recurso, passa ficha adiante.
Soluções baseadas em permissão.
• Processo que quer acessar o recurso solicita permissão aos outros
processos.
Leandro Villas
Exclusão mútua
1: Soluções baseadas em ficha (token)
• Pode garantir com razoável facilidade que todo processo terá
oportunidade de acessar o recurso  evita inanição (starvation).
• Fácil evitar deadlocks  contribui para otimização do processo.
• Desvantagem: ficha pode se perder  precisa-se de
procedimento distribuído para criar nova ficha única.
Leandro Villas
Algoritmo centralizado
• Modo mais direto de conseguir exclusão mútua: simular
como exclusão mútua é feita em monoprocessador.
• Processo é eleito coordenador (Líder)
• Outro processo quer acessar recurso compartilhado:
• sempre que um processo quiser acessar um recurso
compartilhado, envia uma mensagem de requisição ao líder
• se nenhum outro processo estiver acessando o recurso, líder
devolve uma resposta, concedendo permissão
• caso exista um processo acessando o recurso, pedido deverá ser
armazenado em uma fila
Leandro Villas
Algoritmo centralizado
• Garante exclusão mútua
• Justo: permissões concedidas na ordem
• Não há starvation
• Fácil de implementar. Três tipos de mensagem:
Requisição, Concessão e Liberação
Leandro Villas
Algoritmo centralizado
• Coordenador é ponto de falha único
• Falha implica queda do sistema
• Se processo bloqueia depois de pedir recurso, pode ficar bloqueado
• como identificar um coordenador inativo de uma permissão negada
• Coordenador pode ser gargalo
Leandro Villas
Algoritmo descentralizado
Leandro Villas
Algoritmo descentralizado
• Ampliação do coordenador central.
• Premissa: cada recurso é replicado n vezes.
• Toda réplica tem seu próprio coordenador para controlar
acesso concorrente.
• Quando processo quer acessar um recurso, precisa de voto
majoritário m > n/2 coordenadores.
• Coordenador informa ao requisitante se não der permissão.
• Torna solução centralizada original menos vulnerável a falhas
Problema: Se muitos nós quiserem acessar o mesmo recurso, a
utilização decresce rapidamente.
• Haverá tantos nós competindo para obter acesso que, a certa altura,
nenhum dels conseguirá votos suficientes, e o recurso deixará de ser
utilizado.
Leandro Villas
Algoritmo distribuído
Leandro Villas
Algoritmo distribuído
• Algoritmo distribuído determinístico para exclusão mútua
• Lamport (1978), aprimorado por Ricart e Agrawala (1981)
• Requer ordenação total de todos os eventos no sistema
• Para qualquer par de eventos, como mensagens, não pode haver
ambiguidade sobre o qual aconteceu primeiro.
• Algoritmo de Lamport é um modo de conseguir essa ordenação.
Leandro Villas
Algoritmo distribuído
Quando um processo quer acessar um recurso compartilhado:
• Monta mensagem que contém nome do recurso, seu número de
processo e hora (lógica) corrente.
• Envia mensagem a todos os outros processos, incluindo ele
mesmo.
• Premissa: envio de mensagens é confiável.
Leandro Villas
Algoritmo distribuído
Quando um processo recebe uma mensagem:
Ação depende do seu próprio estado em relação ao recurso
solicitado na mensagem.
Se o receptor não está acessando recurso e não quer acessá-lo
 responde OK.
2. Se o receptor já tem acesso ao recurso  Não responde e põe
requisição na fila.
3. Se o receptor também quer acessar mas ainda não o fez,
compara marca de tempo da mensagem que chegou com a que
enviou para todos. A msg com marca menor vence
1.
Caso a marca da msg que chegou seja menor, envia OK. Caso contrário,
enfileira a requisição sem responder
Leandro Villas
Algoritmo distribuído
• Após enviar requisições de permissão, processo espera até
que todos tenham dado permissão.
• Ao terminar, envia mensagem de OK para todos que estão
em sua fila e remove todos da fila.
Leandro Villas
Algoritmo distribuído
• Exclusão mútua é garantida sem starvation e deadlock
• Número de mensagens para cada pedido de permissão
é de 2(n-1), onde o número total de processos no
sistema é n
Problema: n pontos de falha → se qualquer processo
falhar, não responderá as requisições, que será
interpretada, de maneira incorreta como recusa!
Solução?
Leandro Villas
Algoritmo distribuído
• Quando uma requisição chega, o receptor sempre
envia uma resposta, seja concedendo ou recusando
permissão
• Sempre que uma requisição ou uma resposta se
perde, o remetente esgota a temporização de espera
e continua tentando até que uma resposta volte ou
que o remetente conclua que o destinatário está
morto
Leandro Villas
Algoritmo distribuído
• Maior número de mensagens trocadas
• Maior probabilidade de falhas
• Possível gargalho em todos os processos
Importante para mostrar que, apesar das
desvantagens, é possível ter um algoritmo distribuído
que efetivamente promove a exclusão mútua
Leandro Villas
Token ring
Leandro Villas
Token ring
Exclusão mútua por esquemas determinísticos em um SD
• Anel lógico é construído em software e a cada processo é
designada uma posição no anel
• Cada processo deve saber quem deve receber o token
Leandro Villas
Token ring
• Quando o anel é inicializado, o processo 0 recebe o
token
• O token é repassado do processo k para o k+1,
através de msgs ponto-a-ponto
• Quando um processo recebe o token, verifica se
precisa acessar o recurso compartilhado
• acessa o recurso e repassa o token ao próximo processo
• caso contrário, simplesmente repassa o token
Leandro Villas
Token ring
Corretude do algoritmo:
• só um processo tem o token a qualquer instante
• starvation é evitado
Problemas
• Se o token se perder, deve ser gerado novamente
• Detectar que o token se perdeu é difícil
• Se um processo falha, este pode ser removido do grupo e o
token é repassado para o próximo vizinho lógico
• Todos devem manter configuração corrente do anel
Leandro Villas
Comparação entre os 4 algoritmos
Leandro Villas
Algoritmos de eleição
Leandro Villas
Algoritmos de eleição
• Objetivo: escolher um líder – processo que seja
coordenador dentre um conjunto de processos.
• Suposição: cada processo tem um número exclusivo
(endereço de rede, por exemplo).
• Abordagem geral: procurar processo com número mais
alto e designá-lo como líder.
• Algoritmos variam na maneira de localizar tal processo.
Leandro Villas
Algoritmos de eleição - suposições
• Todo processo sabe o número de todos os outros.
• Processos não sabem quais estão funcionando e
quais estão inativos.
• Meta do algoritmo de eleição: garantir que, quando
uma eleição começar, ela terminará com todos os
processos concordando com o novo coordenador
escolhido.
Leandro Villas
Algoritmos de eleição tradicionais
• 1. Algoritmo do valentão -- proposto por Garcia-Molina (1982)
• Processo P qualquer nota que coordenador não está
mais respondendo, inicia eleição da seguinte forma:
• Envia mensagem ELEIÇÃO a todos os processos de
número mais alto
• Se nenhum responder, P vence a eleição e se torna
coordenador
• Se algum responder, este toma o poder e P conclui seu
trabalho.
Leandro Villas
Algoritmos de eleição tradicionais
• Processos podem receber mensagem ELEIÇÃO a qualquer
momento de nós com número mais baixo.
• Receptor envia OK de volta ao remetente, indicando que
está vivo e que tomará o poder.
• Receptor convoca uma eleição (a não ser que já tenha
convocado uma)
• Converge para situação onde todos desistem, exceto um,
que será o novo coordenador.
• Este anuncia a vitória enviando a todos os processos informando
que ele é o novo coordenador.
Leandro Villas
Algoritmos de eleição tradicionais
• Processo inativo convoca eleição quando volta.
• Se for processo de número mais alto, ganha.
• Mais “poderoso” sempre ganha.
Leandro Villas
Algoritmos de eleição tradicionais
Leandro Villas
Algoritmos de eleição tradicionais
• 2. Algoritmo de anel
• Processos ordenados por ordem física ou lógica
• Cada um sabe quem é seu sucessor
• Processo nota que coordenador não responde  envia
mensagem ELEIÇÃO, contendo seu número de processo.
• Se sucessor não estiver respondendo, envia ao próximo membro
ao longo do anel. Repete até encontrar um processo funcional.
• Cada nó adiciona seu número de processo à mensagem,
candidatando-se a coordenador.
Leandro Villas
Algoritmos de eleição tradicionais
• Quando mensagem retornar ao iniciador da eleição:
• Extrai maior número de processo que encontrar na mensagem.
• Circula mensagem COORDENADOR com tal número, além dos
participantes do anel.
• Mensagem COORDENADOR chegou ao iniciador, é removida.
• O que ocorre se dois
processos iniciarem eleição?
Leandro Villas
Eleição em ambiente sem fio
• Sem premissa de que troca de mensagem é confiável e
topologia não muda.
• Em especial redes ad hoc.
Leandro Villas
Eleição em rede ad hoc sem fio
• Qualquer nó, chamado nó fonte, pode iniciar uma eleição
• Envia mensagem ELEIÇÃO a seus vizinhos imediatos (nós que estão
ao seu alcance).
• Nó recebe ELEIÇÃO pela primeira vez:
• Designa remetente como seu pai
• Envia mensagem ELEIÇÃO a todos seus vizinhos imediatos (exceto
pai)
• Se nó recebe ELEIÇÃO de vizinho que não é seu pai, se limita a
reconhecer o recebimento.
Leandro Villas
Eleição em rede ad hoc sem fio
• Quando um nó R designou um nó Q como seu pai, repassa
mensagem ELEIÇÃO aos vizinhos imediatos, exceto Q.
• Aguarda que reconhecimentos cheguem antes de
reconhecer e ELEIÇÃO recebida de Q.
• Vizinhos que já tem pai respondem imediatamente a R.
• Se todos os vizinhos já tem pai, R é um nó folha e pode responder
a Q rapidamente.
• Resposta inclui informações (tempo de vida útil da bateria,
capacidades dos recursos)
Leandro Villas
Eleição em rede ad hoc sem fio
• Q enviou mensagem ELEIÇÃO porque seu pai, P, havia
enviado a ele.
• Quando Q reconhecer mensagem de P, Q passará o nó
mais qualificado a P.
• O nó fonte saberá qual o melhor nó
• Seleciona como líder
• Transmite decisão em broadcast
Leandro Villas
Download