sd07 (si) eleição

12

Click here to load reader

Upload: computacao-depressao

Post on 09-Jul-2015

113 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sd07 (si)   eleição

Sistemas Distribuídos II

Parte 04Eleição

Conteúdo adaptado a partir do material do professor Edmar Rezende (PUC-Campinas)

Page 2: Sd07 (si)   eleição

Introdução

• Por que sistemas distribuídos precisam de soluções de eleição?

– Muitos algoritmos distribuídos necessitam de um processo coordenador (Exemplo: Algoritmo Centralizado para Exclusão Mútua)

– Grupos igualitários de processos podem necessitar escolher um de seus integrantes para desempenhar determinada tarefa

– 2 –

Page 3: Sd07 (si)   eleição

Introdução

• Objetivo:– Assegurar que todos os processos do sistema saibam quem é o novo

coordenador após a realização de uma eleição

• Requisitos:– Cada processo convoca apenas uma eleição por vez para cada caso,

mas “N” processos podem convocar “N” eleições concorrentes para a mesma coisa

– O processo eleito deve ser único para um objetivo

– Mesmo que várias eleições sejam convocadas concorrentemente para ocupar o “cargo” o resultado de todas deve ser idêntico

– 3 –

Page 4: Sd07 (si)   eleição

Introdução

• Eleições, em geral, possuem as seguintes características:

– Não importa qual processo do sistema será o coordenador, contanto que um deles faça o trabalho

– Cada processo é identificado por um número único

• Este número não precisa ser necessariamente o número de criação do processo, mas sim um identificador único que pode ser gerado a partir de outros critérios (por exemplo: índice de carga computacional)

• O os algoritmos tendem a designar como coordenador o processo com número mais alto (é uma tendência e não uma garantia)

– 4 –

Page 5: Sd07 (si)   eleição

Introdução

• Outras características importantes de eleições:– O resultado da eleição não precisa ser perpétuo

• Um processo pode ser eleito para coordenar determinada exclusão mútua e deixar o posto de coordenador assim que não for mais necessário (isso cria a necessidade de nova eleição)

• Um processo pode ser eleito coordenador e permanecer assim até que deixe de existir

– A entrada de um novo processo no grupo pode ou não ocasionar uma nova eleição• Tudo depende das regras de funcionamento do

grupo– 5 –

Page 6: Sd07 (si)   eleição

Algorítmo do Ditador

• Garcia-Molina (1982)– Também conhecido como “algoritmo bully” ou “algotritmo do valentão”

• Funcionamento do Algoritmo:– Quando um processo “P” nota que não existe um coordenador ou que

o coordenador não está respondendo, o mesmo convoca uma eleição– “P” envia uma mensagem indicativa de ELEIÇÃO a todos os processos

com ID maior que o seu• Se nenhum processo responder: P ganha a eleição, tornando-se o

coordenador (e avisa o grupo)• Se algum dos processos consultados responder: este processo passa a

controlar a eleição e P desiste de se tornar o coordenador

– Quando um processo recebe uma mensagem convocando eleição e possui um ID maior que o remetente, envia de volta uma mensagem de OK em seguida inicia uma eleição

– 6 –

Page 7: Sd07 (si)   eleição

Algorítmo do Ditador (cont.)

• O algoritmo exige que cada processo conheça os IDs dos demais processos

– 7 –

Page 8: Sd07 (si)   eleição

Algoritmo em Anel

• Funcionamento do algoritmo:– Quando um processo desconfia que o coordenador está inativo:

• Monta uma mensagem indicativa de ELEIÇÃO contendo seu próprio ID e envia a mensagem para o vizinho

– Se o vizinho estiver inativo:• O emissor envia a mensagem ao próximo processo ativo no anel

– Cada processo que recebe a mensagem de leição:• Acrescenta seu próprio ID na lista da mensagem

– Quando a mensagem retorna ao processo que a enviou:• O emissor reconhece a mensagem com seu próprio ID• Identifica quem venceu a eleição (o maior id existente na mensagem)• Envia uma mensagem indicando a existência de um novo COORDENADOR para os

demais processos, cuja identificação vai na mensagem

– Quando a mensagem termina de circular:• É descartada (retirada da rede) e todos voltam ao trabalho

– 8 –

Page 9: Sd07 (si)   eleição

Algoritmo em Anel (cont.)

• Chang-Roberts (1979)

• Inspirado no algoritmo de exclusão mútua em anel, mas com as seguintes características:

– Os processos estão logicamente ordenados de alguma maneira para formar o anel

– Não usa o “token” para funcionar e sim uma mensagem que contém os votos

– 9 –

Page 10: Sd07 (si)   eleição

Algoritmo em Anel (cont.)

• Funcionamento:– O grupo se organiza em um anel e cada integrante possui um número

identificador– Quem começa a eleição é o processo que primeiro sentir falta de um

coordenador– Este processo manda uma mensagem ao seu vizinho convocando a eleição e

informa seu ID na mensagem– O vizinho acrescenta seu próprio ID na mensagem e encaminha para o vizinho

seguinte– A mensagem segue circulando no anel até retornar ao processo que iniciou a

eleição– Ao reconhecer seu próprio ID na mensagem, o processo entende que a

mesma já passou por todos os demais integrantes, então este verifica qual o maior ID contido na mensagem e informa aos demais que este é o ID vencedor da eleição

– 10 –

Page 11: Sd07 (si)   eleição

Algoritmo em Anel (cont.)

• Funcionamento:

– 11 –

Page 12: Sd07 (si)   eleição

Algoritmo em Anel (cont.)

• Variação do algoritmo em anel:– A mensagem de eleição passa a transportar apenas um ID (o do candidato

com maior ID até o momento)– Cada processo que recebe a mensagem de eleição compara seu ID com o ID

recebido na mensagem:• Se o ID da mensagem é maior que o ID do processo, então o processo passa a

mensagem para o próximo integrante do anel sem alteração nenhuma• Se o ID da mensagem é menor que o ID do processo, então o processo altera a

mensagem, substituindo o ID da mensagem pelo seu próprio ID (ou seja: o ID anterior perdeu a eleição) e passa a mensagem para o próximo integrante do anel

• Se o ID da mensagem é igual ao ID do processo, então o processo se considera o vencedor da eleição (pois isso significa que sua mensagem percorreu todo o anel e retornou intacta) e passa a mensagem indicando a existência de um novo coordenador para o próximo integrante do anel

– Um processo que está participando de uma eleição não aceita participar de outra para o mesmo “cargo”

– 12 –