Sie sind auf Seite 1von 11

Sistemas

Distribudos
Parte 07

Eleio
Contedo adaptado a partir do material do professor Edmar Rezende (PUCCampinas)

Introduo

Por que sistemas distribudos


precisam de solues de
eleio?
Muitos algoritmos distribudos
necessitam de um processo
coordenador (Exemplo:
Algoritmo Centralizado para
Excluso Mtua)
Grupos igualitrios de
processos podem necessitar
escolher um de seus
integrantes para
desempenhar determinada
tarefa
2

Introduo
Outras caractersticas importantes de
eleies:
O resultado da eleio no precisa ser
perptuo
Um processo pode ser eleito para coordenar
determinada excluso mtua e deixar o posto de
coordenador assim que no for mais necessrio
(isso cria a necessidade de nova eleio)
Um processo pode ser eleito coordenador e
permanecer assim at que deixe de existir

A entrada de um novo processo no grupo pode


ou no ocasionar uma nova eleio
Tudo depende das regras de funcionamento
do grupo
3

Introduo
Objetivo:
Assegurar que todos os processos do sistema saibam quem o
novo eleito (coordenador) aps a realizao de uma eleio

Requisitos:
Cada processo convoca apenas uma eleio por vez para cada
caso, mas N processos podem convocar N eleies
concorrentes para a mesma coisa
O processo eleito deve ser nico para um objetivo
Mesmo que vrias eleies sejam convocadas concorrentemente
para ocupar o cargo o resultado de todas deve ser idntico
4

Introduo
Eleies, em geral, possuem as seguintes caractersticas:
No importa qual processo do sistema ser o coordenador,
contanto que um deles faa o trabalho
Cada processo identificado por um nmero nico
Este nmero no precisa ser necessariamente o nmero de criao
do processo, mas sim um identificador nico que pode ser gerado a
partir de outros critrios (por exemplo: ndice de carga
computacional)
Os algoritmos tendem a designar como coordenador o processo com
nmero mais alto ( uma tendncia e no uma garantia)

Algortmo do Ditador
Garcia-Molina (1982)
Tambm conhecido como algoritmo bully ou algotritmo do valento

Funcionamento do Algoritmo:
Quando um processo P nota que no existe um coordenador ou
que o coordenador no est respondendo, o mesmo convoca uma
eleio
P envia uma mensagem indicativa de ELEIO a todos os
processos com ID maior que o seu
Se nenhum processo responder: P ganha a eleio, tornando-se o
coordenador (e avisa o grupo)
Se algum dos processos consultados responder: este processo passa
a controlar a eleio e P desiste de se tornar o coordenador

Quando um processo recebe uma mensagem convocando eleio e


possui um ID maior que o remetente, envia de volta uma
mensagem de OK em seguida inicia uma eleio

Algortmo do Ditador (cont.)


O algoritmo exige que cada processo conhea
os IDs dos demais processos

Algoritmo em Anel (cont.)


Chang-Roberts (1979)
Inspirado no algoritmo de excluso mtua em
anel, mas com as seguintes caractersticas:
Os processos esto logicamente ordenados de alguma
maneira para formar o anel
No usa o token para funcionar e sim uma mensagem
que contm os votos

Algoritmo em Anel
Funcionamento do algoritmo:
Quando um processo desconfia que o coordenador est inativo:
Monta uma mensagem indicativa de ELEIO contendo seu prprio ID e
envia a mensagem para o vizinho

Se o vizinho estiver inativo:


O emissor envia a mensagem ao prximo processo ativo no anel

Cada processo que recebe a mensagem de leio:


Acrescenta seu prprio ID na lista da mensagem

Quando a mensagem retorna ao processo que a enviou:


O emissor reconhece a mensagem com seu prprio ID
Identifica quem venceu a eleio (o maior id existente na mensagem)
Envia uma mensagem indicando a existncia de um novo COORDENADOR
para os demais processos, cuja identificao vai na mensagem

Quando a mensagem termina de circular:


descartada (retirada da rede) e todos voltam ao trabalho

Algoritmo em Anel (cont.)


Funcionamento:

10

Algoritmo em Anel (cont.)


Variao do algoritmo em anel:
A mensagem de eleio passa a transportar apenas um ID (o do
candidato com maior ID at o momento)
Cada processo que recebe a mensagem de eleio compara seu ID com
o ID recebido na mensagem:
Se o ID da mensagem maior que o ID do processo, ento o processo
passa a mensagem para o prximo integrante do anel sem alterao
nenhuma
Se o ID da mensagem menor que o ID do processo, ento o processo
altera a mensagem, substituindo o ID da mensagem pelo seu prprio ID (ou
seja: o ID anterior perdeu a eleio) e passa a mensagem para o prximo
integrante do anel
Se o ID da mensagem igual ao ID do processo, ento o processo se
considera o vencedor da eleio (pois isso significa que sua mensagem
percorreu todo o anel e retornou intacta) e passa a mensagem indicando a
existncia de um novo coordenador para o prximo integrante do anel

Um processo que est participando de uma eleio no aceita participar


de outra para o mesmo cargo
11

Das könnte Ihnen auch gefallen