SlideShare uma empresa Scribd logo
1 de 12
Sistemas Distribuídos II
Parte 04
Eleição
Conteúdo adaptado a partir do material do professor Edmar Rezende (PUC-Campinas)
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 –
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 –
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 –
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 –
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 –
Algorítmo do Ditador (cont.)
• O algoritmo exige que cada processo conheça os IDs dos
demais processos
– 7 –
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 –
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 –
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 –
Algoritmo em Anel (cont.)
• Funcionamento:
– 11 –
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 –

Mais conteúdo relacionado

Mais de Computação Depressão (20)

Sd05 (si) relógios e sincronização
Sd05 (si)   relógios e sincronizaçãoSd05 (si)   relógios e sincronização
Sd05 (si) relógios e sincronização
 
Sd04 (si) comunicação em sd
Sd04 (si)   comunicação em sdSd04 (si)   comunicação em sd
Sd04 (si) comunicação em sd
 
Sd03 (si) conceitos básicos de sd
Sd03 (si)   conceitos básicos de sdSd03 (si)   conceitos básicos de sd
Sd03 (si) conceitos básicos de sd
 
Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saída
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
 
Ufbamat2013
Ufbamat2013Ufbamat2013
Ufbamat2013
 
Ufbaingles2013
Ufbaingles2013Ufbaingles2013
Ufbaingles2013
 
Ufbagab mat 2013
Ufbagab mat 2013Ufbagab mat 2013
Ufbagab mat 2013
 
Ufbagab ingles2013
Ufbagab ingles2013Ufbagab ingles2013
Ufbagab ingles2013
 
Ufbagab fis 2013
Ufbagab fis 2013Ufbagab fis 2013
Ufbagab fis 2013
 
Ufbafisqui2013
Ufbafisqui2013Ufbafisqui2013
Ufbafisqui2013
 
Ufbagab qui 2013
Ufbagab qui 2013Ufbagab qui 2013
Ufbagab qui 2013
 
Questesdetecnologia ano2002
Questesdetecnologia ano2002Questesdetecnologia ano2002
Questesdetecnologia ano2002
 
Questesdematemtica ano2003
Questesdematemtica ano2003Questesdematemtica ano2003
Questesdematemtica ano2003
 
Questesdematemtica ano2002
Questesdematemtica ano2002Questesdematemtica ano2002
Questesdematemtica ano2002
 
Questesdefundamentos ano2003
Questesdefundamentos ano2003Questesdefundamentos ano2003
Questesdefundamentos ano2003
 
Questesdefundamentos ano2002
Questesdefundamentos ano2002Questesdefundamentos ano2002
Questesdefundamentos ano2002
 
Gabarito ano2011
Gabarito ano2011Gabarito ano2011
Gabarito ano2011
 
Gabarito ano2010
Gabarito ano2010Gabarito ano2010
Gabarito ano2010
 
Gabarito ano2009
Gabarito ano2009Gabarito ano2009
Gabarito ano2009
 

Sistemas Distribuídos II - Eleição

  • 1. Sistemas Distribuídos II Parte 04 Eleição Conteúdo adaptado a partir do material do professor Edmar Rezende (PUC-Campinas)
  • 2. 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 –
  • 3. 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 –
  • 4. 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 –
  • 5. 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 –
  • 6. 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 –
  • 7. Algorítmo do Ditador (cont.) • O algoritmo exige que cada processo conheça os IDs dos demais processos – 7 –
  • 8. 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 –
  • 9. 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 –
  • 10. 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 –
  • 11. Algoritmo em Anel (cont.) • Funcionamento: – 11 –
  • 12. 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 –