• Nenhum resultado encontrado

UNIVERSIDADE DE PERNAMBUCO FACULDADE DE CIÊNCIAS E TENOLOGIA DE CARUARU BACHARELADO EM SISTEMAS DE INFORMAÇÃO ÉMERSON REMÍGIO DA SILVA

N/A
N/A
Protected

Academic year: 2021

Share "UNIVERSIDADE DE PERNAMBUCO FACULDADE DE CIÊNCIAS E TENOLOGIA DE CARUARU BACHARELADO EM SISTEMAS DE INFORMAÇÃO ÉMERSON REMÍGIO DA SILVA"

Copied!
43
0
0

Texto

(1)

UNIVERSIDADE DE PERNAMBUCO

FACULDADE DE CIÊNCIAS E TENOLOGIA DE CARUARU

BACHARELADO EM SISTEMAS DE INFORMAÇÃO

ÉMERSON REMÍGIO DA SILVA

ANÁLISE E MODELAGEM DE ALGORITMOS PARA ELEIÇÃO DE

LÍDER EM SISTEMAS DISTRIBUÍDOS

(2)

ÉMERSON REMÍGIO DA SILVA

ANÁLISE E MODELAGEM DE ALGORITMOS PARA ELEIÇÃO DE

LÍDER EM SISTEMAS DISTRIBUÍDOS

Monografia apresentada junto ao Curso de Sistemas de Informação da Faculdade de Ciências e Tecnologia de Caruaru da Universidade de Pernambuco como requisição parcial à obtenção do título de Bacharel.

Orientadora: Prof. Msc. Patricia Takako Endo

(3)
(4)

AGRADECIMENTOS

A Deus por iluminar os meus pensamentos quando não conseguia ir adiante na pesquisa.

A Profª Patricia Takako Endo pela orientação deste trabalho com toda paciência por conta de minhas dificuldades e atrasos, pelo material de pesquisa disponibilizado e pelo aprendizado proporcionado.

A toda minha família em especial aos meus pais, Maria de Fátima Remígio e Fernando Lima da Silva, por servirem de exemplo para o que sou hoje, aos meus irmãos Anamere e Johelder por aguentarem as minhas chatices e broncas, a minha Vó Branca que eu sempre aperreio todo dia e a minha namorada gorducha Amanda Pimentel pela paciência que tem comigo nessa época em que estou cheio de trabalho, atividades, provas e tcc para fazer.

A todos professores que me proporcionaram um aprendizado e meus amigos que participaram de minha caminhada, em especial aos da faculdade que por muitas vezes me incentivaram para continuar em frente.

(5)

RESUMO

Em sistemas distribuídos, há situações onde é necessário que um componente se comporte de maneira diferenciada e única para controlar uma determinada função do sistema. Este componente, chamado de líder, é escolhido através de um processo de eleição. Este trabalho tem como objetivo principal analisar soluções distribuídas existentes para escolha de líderes através da modelagem e simulação de algoritmos de eleição em diferentes cenários. Para tanto, utilizou a ferramenta de modelagem NetLogo. Observando a quantidade de mensagens e quantidade de tempo pode-se medir o desempenho de um algoritmo para realizar uma eleição em determinado cenário.

(6)

ABSTRACT

In distributed systems, there are situations where a component is required to behave differently and the only way to control a given function of the system. This component, called a leader, is chosen through an election process. This work aims to analyze existing distributed solutions for choosing leaders through modeling and simulation of algorithms on different election scenarios. Therefore, we used the modeling tool NetLogo. Observing the number of messages and the amount of time one can measure the performance of an algorithm to make an election in a given scenario.

(7)

LISTA DE FIGURAS

Figura 1. Iniciando a eleição com o algoritmo de LeLann ... 17

Figura 2. Recebendo mensagens completas ao circular no anel... 18

Figura 3. Iniciando a eleição com o algoritmo de Chang e Roberts ... 19

Figura 4. Finalizando a eleição com o menor nó recebendo sua mensagem ... 19

Figura 5. Iniciando a eleição com o algoritmo do valentão ... 20

Figura 6. Nó sendo eleito líder do sistema ... 20

Figura 7. Rede fully-connected com senso de direção... 21

Figura 8. Primeira fase do algoritmo de Singh ... 23

Figura 9. Processo de difusão da mensagem “ELEIÇÃO” ... 25

Figura 10. Envio de mensagens acks aos nós pais ... 25

Figura 11. Iniciando eleição em anel e repassando a mensagem de eleição ... 26

Figura 12. Repassando a mensagem de líder e finalizando a eleição ... 26

Figura 13. Organização do cenário no setup ... 27

Figura 14. Sequência de iterações YO- e –YO ... 28

Figura 15. Quantidade de tempo em relação à quantidade de nós do cenário ... 34

(8)

LISTA DE TABELAS

Tabela 1. Características dos algoritmos ... 29 Tabela 2. Dados das simulações com relação ao tempo ... 35 Tabela 3. Dados das simulações com relação à quantidade de mensagens ... 37

(9)

LISTA DE SIGLAS

CH - Cluster Head CT - Control Token DP - Desvio Padrão EB - Estação Base FIFO - First in First out ID - Identificação P2P - Peer-to-peer

RSSF - Redes de Sensores sem Fio RSSI - Received Signal Strength Indicator SA - Sub Anel

(10)

SUMÁRIO 1. INTRODUÇÃO ... 10 1.1. Problema ... 11 1.2. Objetivos ... 11 1.2.1. Geral ... 11 1.2.2. Específicos ... 11 1.3. Justificativa ... 11 2. PROCEDIMENTOS METODOLÓGICOS ... 13 2.1. Natureza da Pesquisa ... 13

2.1.1. Quanto aos Fins ... 13

2.1.2. Quanto aos Meios ... 13

2.1.3. Quanto à forma de Abordagem ... 14

2.2. Instrumento de Coleta de dados ... 14

2.3. Análise dos Resultados ... 14

3. ALGORITMOS DE ELEIÇÃO ... 16

3.1. Algoritmo de LeLann ... 16

3.2. Algoritmo de Chang e Roberts ... 18

3.3. Algoritmo do valentão ... 19 3.4. Algoritmo de Singh ... 21 3.4.1. Variáveis... 21 3.4.2. Mensagens ... 22 3.4.3. Primeira Fase ... 22 3.4.4. Segunda Fase ... 23 3.5. Algoritmo de Vasudevan ... 24

3.6. Algoritmo tradicional em anel ... 25

3.7. Algoritmo yo-yo ... 27

3.7.1. Setup ... 27

3.7.2. Iteração ... 27

3.7.3. YO- ... 28

3.7.4. -YO ... 28

3.8. Características dos algoritmos ... 29

3.9. Cenários de Aplicação ... 30

3.9.1. Eleição de Líder de Clusters Semânticos ... 30

3.9.2. Redes críticas ad hoc autonômicas... 31

3.9.3. Coordenação de Rotas ... 32

4. SIMULAÇÕES E RESULTADOS ... 34

4.1. Quantidade de tempo para execução de uma eleição... 34

4.2. Quantidade de mensagens trocadas ... 36

4.3. Análise e Discussão ... 38

5. CONCLUSÃO ... 40

(11)

1. INTRODUÇÃO

A evolução computacional que vem acontecendo nas últimas décadas, permitiu que vários computadores pudessem se comunicar uns com os outros em alta velocidade e trocar grande quantidade de dados através de redes. Existiam sistemas centralizados que para ter uma grande capacidade de processamento eram necessários mainframes de alto custo, mas mesmo estes ficavam sujeitos a falhas, por estarem implementados em um único local, qualquer problema faria com que ficasse indisponível ao usuário. Isto viabilizou o surgimento de sistemas distribuídos, que são componentes com um comportamento autônomo que se comunicam através de mensagens. Colouris, Dollimore e Kindberg (2007, p. 1) definem que: "um sistema distribuído é aquele no qual componentes localizados em computadores

interligados em rede se comunicam e coordenam suas ações apenas passando mensagens".

O sistema distribuído permite, através de uma interface, que os recursos e aplicações fiquem disponíveis para o usuário mesmo que ocorra falha por parte de algum computador no sistema, e ao mesmo tempo que ele abstrai a falha, a distribuição dos processos, os recursos e aplicações estão ocorrendo de forma distribuída. Essa é uma característica de segurança essencial para ser analisada ao escolher esse tipo de sistema, visto que, se o sistema fosse centralizado a falha seria perceptível e os recursos e aplicações do sistema ficariam inacessíveis ao usuário. Também deve ser levada em consideração para aderir a este tipo de sistema a sincronização, que é um pouco mais difícil de ser realizada. A sincronização pode precisar de ser feita em tempo real ou simplesmente entre os computadores do sistema, para que assim garanta a consistência dos processos e distribuição de recursos.

Uma questão muito importante a ser tratada é a concorrência dos recursos utilizados pelo sistema para que todos os computadores possam utilizar determinado recurso sem que exista um conflito ou inconsistência. Segundo Tanenbaum e Steen (2007), isso é feito pelos algoritmos distribuídos de exclusão mútua, que organizam para que os processos acessem o recurso de acordo com a requisição e não todos ao mesmo tempo.

Alguns algoritmos distribuídos precisam que algum componente do sistema se comporte de maneira diferenciada, ou seja, desempenhando um papel especial, específico e único. Esse componente é chamado de líder ou coordenador. Segundo Tanenbaum e Steen (2007) a meta desses algoritmos é garantir que ao final da eleição apenas um seja escolhido como líder e que todos concordem que ele realmente será o líder.

(12)

11

1.1. Problema

Qual desempenho dos algoritmos de eleição de líder em sistemas distribuídos na execução de uma eleição?

1.2. Objetivos

Nesta seção são abordados os objetivos do trabalho, são estes: o objetivo geral e os objetivos específicos.

1.2.1. Geral

O objetivo geral deste trabalho é analisar soluções existentes para escolha de líderes utilizando algoritmos distribuídos para eleição de líder através de modelagem e simulação.

1.2.2. Específicos

 Analisar as funcionalidades e comportamentos dos algoritmos;  Modelar as soluções usando a ferramenta NetLogo;

 Simular as soluções com diferentes cenários.

1.3. Justificativa

Em sistemas distribuídos existe um único algoritmo implementado em todos os nós, porém determinados sistemas distribuídos necessitam que um nó se comporte de maneira diferente (líder), e para escolher o líder é necessário realizar uma eleição. A eleição em sistemas distribuídos é dada de diversas formas tendo em vista que a quantidade de nós e topologia dos sistemas variam, também vão mudar a maneira e o algoritmo que vai eleger o líder.

O método de modelagem e a ferramenta NetLogo (Wilensky, 1999) que são utilizados nesta pesquisa permitem que seja visto de várias maneiras como o algoritmo vai se comportar em tempo de execução, podendo assim também analisá-lo por mais de uma variável de desempenho. Através dos gráficos, que exibem o resultado final, pode-se fazer um estudo analítico para que então possa descobrir o desempenho de cada algoritmo em cada cenário. E

(13)

durante o estudo aprendem-se técnicas de modelagem baseada em agentes que servem para modelar comportamentos distribuídos não só da área de tecnologia, mas também de diversas outras áreas, como exemplo: biologia, química, fenômenos sociais e controle de tráfego.

Uma análise dos algoritmos para eleição de líder é importante para auxiliar quem necessita utilizar algum em seu sistema, pois através desta são vistas as limitações e desempenho de cada algoritmo, ajudando a identificar o melhor algoritmo para determinado problema.

(14)

13

2. PROCEDIMENTOS METODOLÓGICOS

Este capítulo trata da forma metodológica em que a monografia foi elaborada, a forma como é trabalhada do inicio ao fim, qual caminho segue e como são tratados os resultados. Segundo Cervo, Bervian e Da Silva (2007) o método é, em sentido geral, a ordem em que os processos são impostos para se chegar a determinado resultado.

2.1. Natureza da Pesquisa

Esta seção do capítulo explica a forma como é realizada a pesquisa, abordando os métodos que são utilizados para chegar aos resultados esperados.

2.1.1. Quanto aos Fins

Quanto aos fins esse trabalho é exploratório e explicativo. É pesquisa exploratória, pois há poucos trabalhos que abordam a modelagem com a ferramenta NetLogo. Cervo, Bervian e Da Silva (2007, p. 63) dizem que: “A pesquisa exploratória não requer a elaboração de hipóteses a serem testadas no trabalho, restringindo-se a definir objetivos e buscar mais informações sobre determinado assunto de estudo”. Também é explicativa, porque procura identificar as causas do fenômeno a ser estudado, segundo Andrade (2006) pesquisa explicativa tem como objetivo aprofundar o conhecimento, analisando o comportamento dos fatores que determinam ou interferem no comportamento de outros fatores dos fenômenos a serem observados.

2.1.2. Quanto aos Meios

Este trabalho é elaborado com pesquisa bibliográfica porque o conteúdo estudado é buscado na literatura em artigos, livros e dissertação, que tratam o comportamento de algoritmos já existentes para eleição de líder em sistemas distribuídos. E segundo Cervo, Bervian e Da Silva (2007), pesquisa bibliográfica procura explicar o problema a partir de estudos anteriores, buscando analisar estas contribuições científicas existentes sobre um determinado assunto.

(15)

2.1.3. Quanto à forma de Abordagem

A pesquisa é abordada tanto de forma quantitativa quanto de forma qualitativa, pois a pesquisa é exploratória e Lakatos e Marconi (2003, p. 188) dizem que quanto à pesquisa exploratória: “Obtém-se frequentemente descrições tanto quantitativas quanto qualitativas do

objeto de estudo, e o investigador deve conceituar as inter-relações entre as propriedades do fenômeno, fato ou ambiente observado.”.

Será quantitativa, pois o trabalho permite que formem-se resultados a partir de meios estatísticos, e segundo Richardson (1985) o método quantitativo caracteriza-se por quantificação na coleta de informações e no tratamento delas em busca do resultados através de métodos estatísticos, e será qualitativa porque é utilizada para entender fenômenos por meio de observação do comportamento e de testes, e Richardson (1985, p. 38) explica que: "este método difere, em princípio, do quantitativo, à medida que não emprega um instrumental estatístico como base na análise de um problema, não pretendendo medir ou numerar categorias".

2.2. Instrumento de Coleta de dados

A coleta de dados é realizada através de simulações e testes, e os instrumentos desse tipo de coleta são: "instrumentos utilizados com a finalidade de obter dados que permitam medir o rendimento, a freqüência, a capacidade ou a conduta de indivíduos, de forma quantitativa" Lakatos e Marconi (2003, p. 223). O NetLogo é uma ferramenta para análise e modelagem de fenômenos emergentes do mundo real, permite a simulação dos fenômenos através das modelagens, e através de testes nas modelagens permite que enquanto o fenômeno estiver acontecendo vários fatores sejam analisados.

2.3. Análise dos Resultados

Os resultados são quantitativos e analisados em forma de gráficos e tabelas, pois através do NetLogo pode ser feito com que a cada simulação um gráfico seja gerado em tempo de execução do determinado fenômeno, assim podem ser analisados vários fatores ao mesmo tempo e de diversas maneiras.

São analisados os seguintes algoritmos: Chang e Roberts, valentão, tradicional em anel com duas variações na quantidade de nós que iniciam a eleição (o tradicional em anel –

(16)

15

random, com até 20% do total de nós da rede em uma distribuição randômica normal e o

tradicional em anel - um, com um único nó) e yo-yo que, nestas simulações, tem a probabilidade de 50% de um nó ter um enlace com um outro nó do sistema.

O objetivo principal das simulações é analisar como os mesmos se comportam com relação à quantidade de tempo para finalizar uma eleição e quantidade de mensagens trocadas entre os nós. Para tanto, foram utilizadas topologias de rede com 15, 30, 60, 120 e 500 nós com 30, 60, 120, 240 e 1000 repetições, respectivamente.

A análise é feita desconsiderando falhas do sistema e falhas relacionadas à rede de comunicação. Estas falhas podem ser no envio da mensagem, no tempo limite atingido (timeout), nas mensagens corrompidas, na inatividade de nós no sistema e no atraso entre os nós.

(17)

3. ALGORITMOS DE ELEIÇÃO

Os algoritmos distribuídos muitas vezes precisam que um nó se comporte de maneira diferente, desempenhando assim uma função específica e única para todo sistema (nesta monografia, este nó será chamado de líder). Para escolher o líder existe um processo chamado de eleição que é executado por um algoritmo de eleição por todos os nós do sistema; dentre todos apenas um torna-se o líder. Alencar (1998 p. 4) explica que “o principal

requisito para algoritmos de eleição de líder é que a escolha do elemento eleito seja única, ainda que vários nós estejam tentando eleger-se.”. O líder pode ser escolhido de acordo com

vários fatores, dentre eles podemos citar como exemplo: um endereço IP, endereço físico do nó, recurso de processamento disponível ou qualquer outra variável na qual cada nó seja unicamente identificado no sistema distribuído.

Alguns algoritmos são vistos neste trabalho, em ordem cronológica, como referência para o estudo sobre eleição em sistemas distribuídos. Estes algoritmos são classificados de acordo com a topologia de rede para o qual foram desenvolvidos. Os algoritmos de Le Lann (1977), Chang e Roberts (1979) e Tanenbaum e Steen (2007) são utilizados para eleição em redes com topologia de anel unidirecional, onde as mensagens só são enviadas em um único sentido. Já o algoritmo de Garcia-Molina (1982) e Singh (1997) são utilizados em redes

fully-connected (ou grafos completos), onde todos os nós têm um enlace com todos os outros nós

do sistema, com a diferença que Singh (1997) subdivide o sistema em anel lógico com senso de direção para realizar a eleição. O algoritmo de Santoro (2007) é utilizado para eleição em árvores acíclicas, utilizando também senso de direção, isso é o que distingue os enlaces em que as mensagens devem ser enviadas. E o algoritmo de Vasudevan (2004) desenvolvido para eleição em redes ad hoc independente de topologia, já que falhas nessas redes são constantes, a mudança de topologia é uma consequência.

Para esta monografia são usados quatro algoritmos: o algoritmo de LeLann (Le Lann, 1977), o algoritmo do valentão (Garcia-Molina, 1982), o algoritmo tradicional em anel (Tanenbaum e Steen, 2007) e um algoritmo mais recente, proposto por (Santoro, 2007), denominado yo-yo. Nas próximas sub-seções, estes algoritmos serão descritos em detalhes.

3.1. Algoritmo de LeLann

A exclusão mútua permite, em sistemas distribuídos, que todos os nós possam utilizar do mesmo recurso, mas para garantir que um único nó utilize esse recurso por vez e manter

(18)

17

uma ordem, uma alternativa é utilizar um control token (CT). O CT segundo Jia e Zhou (2005) é um token exclusivo, também conhecido por mensagem de privilégio, que é compartilhado pelos nós do sistema para acesso a determinado recurso. Quando o CT se perde, os nós não podem acessar o recurso compartilhado, ficando este ocioso, comprometendo o funcionamento completo do sistema.

O algoritmo de Le Lann (1977) foi desenvolvido para recuperar o CT para que os nós do sistema não ficassem sem utilizar um determinado recurso compartilhado. Segundo o autor, os nós estão organizados em um anel e no fim do processo de eleição apenas um nó é responsável por regenerar o CT. Porém para que isso seja garantido tem-se duas premissas: o algoritmo executado é o mesmo em todos os nós e no fim da eleição todos nós possuam o mesmo conteúdo na mensagem de eleição. Antes do início de uma eleição, todos os nós precisam de uma identificação (ID) única, para se diferenciar dos demais.

Ao perceber que o CT foi perdido, inicia-se o processo de eleição. Segundo Le Lann (1977) a eleição ocorre da seguinte maneira: o nó que percebeu a ausência do CT cria uma mensagem própria e envia para seu vizinho a mensagem “ELEIÇÃO(i)”, o “i” dessa mensagem é a ID do nó i que a criou, e inicialmente, acrescenta na mensagem a sua ID. Na Figura 1.a, o nó que inicia o processo de eleição é o nó 5. O seu vizinho, nó 6, ao receber uma mensagem pela primeira vez acrescenta sua ID na mensagem e repassa para o vizinho, nó 7. Após isso ele cria a sua própria mensagem “ELEIÇÃO(6)” e passa para o vizinho, nó 7. Com esse processo de repasse, as mensagens circulam o anel acrescentando as IDs dos vizinhos (Figura 1.b).

(a) (b)

Figura 1. Iniciando a eleição com o algoritmo de LeLann

As mensagens circulam no anel até que a própria mensagem de cada nó volte até ele, sendo identificada como mensagem do nó pelo “i” passado, e cada mensagem contém as IDs

(19)

de todos os nós do sistema (Figura 2). Assim, cada nó calcula a menor ID da mensagem. Se for a sua própria ID, ele é eleito o líder para regenerar o CT, o líder eleito nesse cenário de exemplo é o nó 1, pois o algoritmo escolhe o nó de menor ID para recuperar o CT.

Figura 2. Recebendo mensagens completas ao circular no anel

3.2. Algoritmo de Chang e Roberts

O trabalho proposto por Le Lann é um algoritmo no qual a quantidade de mensagens M é , onde n é a quantidade de nós do sistema. Em um sistema grande, essa quantidade de mensagens para realizar a eleição é considerada inviável por congestionar os meios de comunicação. Chang e Roberts (1979), tomando como base o trabalho de Le Lann, melhoraram o algoritmo, diminuindo bastante a quantidade de mensagens para realizar uma eleição.

Para o algoritmo funcionar, leva-se em conta que todos os nós também tem identificações (ID) únicas, estão organizados em anel e o mesmo algoritmo é executado em todos os nós. Diferindo do algoritmo de LeLann apenas porque o conteúdo da mensagem não é o mesmo em todos os nós, sendo esta repassada pelo anel e apenas composta pela ID do nó que está “vencendo” a eleição. O algoritmo pode funcionar para eleger o nó com maior ID ou menor, mas para a eleição descrita neste trabalho considera-se que o algoritmo está elegendo o nó com menor ID.

O processo de eleição é iniciado quando um nó percebe que o líder falhou e está inativo. Segundo Chang e Roberts (1979) o nó que a iniciou faz uma mensagem “ELEIÇÃO(i)”, onde “i” é a sua ID, e passa adiante (Figura 3.a). O vizinho por sua vez faz uma comparação entre sua ID e a da mensagem, se a sua for menor, ele descarta aquela mensagem e cria uma mensagem com sua ID (Figura 3.b).

(20)

19

(a) (b)

Figura 3. Iniciando a eleição com o algoritmo de Chang e Roberts

Um nó é eleito líder do sistema quando a mensagem ao percorrer todo o anel passar por ele novamente com ID igual a sua, isto mostra que ele é o nó de origem da mensagem e o de menor ID do anel (Figura 4.a, 4.b).

(a) (b)

Figura 4. Finalizando a eleição com o menor nó recebendo sua mensagem

3.3. Algoritmo do valentão

O algoritmo do valentão recebe esse nome porque o nó mais “robusto” vence a eleição e torna-se líder. Neste caso, “robusto” pode se representado pela identificação (ID) dos nós, mas nada impede que outras analogias sejam feitas, como por exemplo, quantidade de recurso disponível. Antes que a eleição tenha início, há duas premissas: cada nó tem uma ID única e conhece os vizinhos “maiores” que ele próprio. Aqui, o adjetivo maior faz referência à ID do nó, uma vez que robusto está sendo utilizado neste sentido. É iniciado o processo de eleição quando qualquer nó percebe que não há líder ativo no sistema.

(21)

Segundo Garcia-Molina (1982), o nó que inicia a eleição envia uma mensagem "ELEIÇÃO" para todos os nós maiores que ele, ativos ou não (Figura 5.a), e aguarda uma resposta positiva “OK” (Figura 5.b). Caso ele receba ao menos uma resposta, seu processo de eleição é finalizado, pois ele entende que há alguém mais robusto que ele. Assim, um outro nó vai continuar com a eleição. Porém, caso nenhum nó responda, ele torna-se o líder.

(a) (b)

Figura 5. Iniciando a eleição com o algoritmo do valentão

Um nó pode receber a mensagem de eleição a qualquer momento, quando recebe ele envia um "OK" de volta como resposta e toma o poder de fazer a eleição novamente. Assim em algum momento todos os nós maiores do que o nó que iniciou a eleição vão ter tomado o poder e iniciado também a eleição (Figura 6.a), após receberem as respostas "OK" (Figura 6.b) o nó maior uma hora realizará o mesmo processo, não receberá uma mensagem “OK” de volta e então vencerá a eleição e mandar a mensagem "LÍDER" para todos os nós do sistema (Figura 6.c).

(a) (b) (c) Figura 6. Nó sendo eleito líder do sistema

(22)

21

3.4. Algoritmo de Singh

O algoritmo de Singh (1997) é utilizado em redes assíncronas fully-connected com um senso de direção (Figura 7.a). Isto permite aos nós distinguirem os enlaces, tendo como premissa a existência de identificação (ID) única para cada nó, e formando um anel lógico do sistema. Ele funciona dividindo a rede em sub anéis (chamaremos de SA neste trabalho), para reduzir o número de candidatos, e depois apenas alguns nós disputam a liderança da rede toda, a divisão dos nós em SAs é feita seguindo a fórmula , onde K é a quantidade de SAs resultantes (Figura 7.b) e n é a quantidade de nós do sistema. Para ele funcionar, assumimos que o número de nós do sistema é potencia de dois. O algoritmo é dividido em duas fases.

(a) (b)

Figura 7. Rede fully-connectedcom senso de direção

Na primeira fase, segundo Singh (1997), um nó tem que capturar todos os nós do SA para se eleger o líder, apenas do SA, e esta captura é feita de acordo com a ID. Ao fim da primeira fase, o número de candidatos é reduzido para um por SA. A segunda fase consiste nos candidatos restantes competirem para ao fim da eleição ter apenas eleito um líder na rede. Para o funcionamento do algoritmo existem algumas variáveis que estão implementadas em todos os nós e mensagens que são enviadas, ambas servem para a execução das fases e finalização da eleição.

3.4.1. Variáveis

(23)

state: é inicializado como passive, mas ao iniciar a eleição o valor muda para

candidate. Se o nó for capturado muda para captured e caso seja eleito muda para elected;

level: é inicializado com zero e indica o número de nós que foram capturados pelo nó na primeira fase;

step: inicializado com zero, é utilizado na segunda fase para indicar em qual passo está, pois a mesma é feita em uma sequência de steps;

owner: para um nó que ainda é candidato o valor é zero, mas para um nó capturado o valor é o enlace que direciona ao nó que o capturou, provavelmente o líder do SA;  phase: indica em qual fase está a execução do algoritmo.

3.4.2. Mensagens

As mensagens enviadas durante as duas fases do algoritmo são:

CAPTURE(phase, level/step, i): essa é a mensagem enviada para capturar outros nós, então ela é utilizada nas duas fases, contendo três variáveis de entrada como parâmetros. Se a phase for igual a um é usado o level, caso contrário é usado o step e o

i é a ID do nó que está mandando a mensagem;

INFORM(dist): esta mensagem é utilizada na segunda fase para informar, a um nó que enviou a mensagem de captura, quem é o seu “dono”;

ACCEPT(phase, level): é a mensagem enviada como resposta a uma mensagem de captura se o nó for capturado, na segunda fase o parâmetro “level” é abstraído;

OWNER(id): esta mensagem é enviada ao final da primeira fase para indicar o nó que foi eleito líder do SA, e todos os nós respondem com a mensagem ACK, confirmando que foi recebida a mensagem;

ELECTED é enviada ao fim da segunda fase pelo nó que foi eleito líder do sistema.

3.4.3. Primeira Fase

Uma eleição, segundo Singh (1997) ocorre inicialmente com a primeira fase, estando divididos os nós, a eleição ocorre de forma separada em cada SA, assim os nós tentam

(24)

23

capturar os demais através da mensagem CAPTURE (Figura 8.a), para capturar são passados como parâmetro a fase, o level do nó e a identificação (i).

(a) (b)

Figura 8. Primeira fase do algoritmo de Singh

Os nós respondem com a mensagem ACCEPT (Figura 8.b), caso aceite a captura e mudam o state para captured, caso contrário, o nó manda a mensagem CAPTURE para o nó que a mandou inicialmente, e este processo continua até que todos os nós sejam capturados por um único. Esse nó manda a mensagem OWNER a todos os nós para indicar que é o líder do SA, os nós por sua vez ao receberem a mensagem mudam o valor da variável owner e respondem com uma mensagem ACK.

3.4.4. Segunda Fase

Ao fim da primeira fase resta apenas um candidato por SA, então na segunda fase os nós que ainda são candidatos tentam capturar os demais nós. Para isso é utilizada a mensagem

CAPTURE, mas agora ao invés de utilizar o level utiliza-se o step, então o nó com maior valor

no par dessas variáveis pode capturar os menores. Funcionando da seguinte maneira, um nóx

envia a mensagem CAPTURE para um nóy, se esse nóy tiver o valor do state em candidate,

será comparado o valor do par das variáveis para saber se é capturado, se o valor do state for

passive, então o nóy manda através da mensagem INFORM quem o capturou, para que assim

este nóx possa tentar capturar o líder do SA. A cada tentativa de captura com sucesso é

acrescentado mais um no valor do step, este processo se repete até o step de um nó ficar maior que a quantidade de SA (K), então ele manda a mensagem OWNER para indicar que é o líder do sistema.

(25)

3.5. Algoritmo de Vasudevan

Os algoritmos tradicionais para redes estáticas são desenvolvidos sem levar em conta algumas situações que em redes sem fio são importantes, como a mudança de topologia. Então Vasudevan, Kurose e Towsley (2004) desenvolveram um algoritmo que funciona em redes ad hoc e suporta essa mudança de topologia formando um grafo não direcionado. Esse algoritmo utiliza computação difusa e o líder é eleito baseado no nó com maior valor, este valor pode ser a energia restante da bateria, distância mínima para outros nós ou capacidade de processamento. A eleição pode ser iniciada por um nó quando houver desconexão do líder ou se o valor dele estiver fora de um limiar predefinido, e leva-se em conta que todos os nós possuem ID única e os enlaces são bidirecionais e FIFO (first in first out).

Algumas mensagens estão implementadas nos nós para uso durante a eleição, são elas: “ELEIÇÃO”, mensagem usada para percorrer a árvore de cobertura (spanning tree) durante uma eleição; ack, mensagem usada para indicar o recebimento da mensagem “ELEIÇÃO”;

leader, para anunciar o novo líder após a eleição; probe, para indicar se um nó ainda está

conectado ao grafo; e reply, indica o recebimento da mensagem probe. Há também algumas variáveis implementadas, são estas: si, uma variável booleana que indica se i está participando de uma eleição; pi, indica quem é o nó pai de i na árvore de propagação das mensagens; deltai,

é uma variável booleana que indica se i enviou uma ack para pi; lidi, mostra quem é o líder;

Ni, uma lista com os vizinhos de i; Si, lista dos nós que ainda não responderam com uma ack;

e srci, é a identificação do nó durante a eleição, sendo esta composta pela ID única e o valor,

este trabalho leva em consideração que os dois são o mesmo.

Uma eleição ocorre quando qualquer nó, chamado source, envia uma mensagem “ELEIÇÃO”, iniciando um processo de computação difusa para os seus vizinhos imediatos (Figura 9.a). Estes vizinhos inicializam a variável pi com a ID do nó que o encaminhou

primeiro a mensagem “ELEIÇÃO”, então este nó encaminha a mensagem a todos seus nós vizinhos (filhos), exceto para o nó marcado como pai (Figura 9.b). Os vizinhos que recebem uma mensagem “ELEIÇÃO”, se o nó que enviou não é o nó pai, ele responde imediatamente com uma ack, caso seja o nó pai, ele só responde após receber ack de todos seus nós filhos, essa mensagem ack do pai contém informações sobre o possível líder vindo de seus filhos, por isso não pode vir imediatamente.

(26)

25

(a) (b)

Figura 9. Processo de difusão da mensagem “ELEIÇÃO”

Após os nós folhas (nós do fim da árvore) receberem a mensagem “ELEIÇÃO”, eles começam a enviar aos seus pais as acks contendo a informação srci, ao passar para os pais só

é repassado para os pais destes a srci de maior valor (Figura 10.a). Assim ao todos os nós

responderem o source com suas respectivas acks (Figura 10.b), este tem como calcular qual é o nó de maior valor e enviar por broadcast a mensagem leader para a árvore.

(a) (b)

Figura 10. Envio de mensagens acks aos nós pais

3.6. Algoritmo tradicional em anel

O algoritmo tradicional em anel, segundo Tanenbaum e Steen (2007), consiste na utilização de um anel em que os nós estão ordenados por ordem física ou lógica, com a premissa de que eles possuem IDs únicas, e ao terminar a eleição elege o nó mais robusto como líder. Este algoritmo difere de outros algoritmos em anel por não utilizar ficha.

A eleição é iniciada quando qualquer nó percebe que não há líder ativo, porém mais de um nó pode perceber isso simultaneamente e iniciar eleições em paralelo; de toda forma, o resultado é o mesmo. O nó que percebe a ausência do líder cria uma mensagem "ELEIÇÃO"

(27)

para ser repassada no anel (como mostra a Figura 11.a), que contém inicialmente a ID do próprio nó, e a envia para o próximo nó do anel. Este acrescenta na mensagem a sua ID e a envia novamente.

(a) (b)

Figura 11. Iniciando eleição em anel e repassando a mensagem de eleição

Este processo ocorre até que todos os nós do anel tenham realizado esta tarefa. A mensagem de eleição para de circular quando o nó inicial recebê-la novamente (Figura 11.b) e, comparando o primeiro item da mensagem, perceber que a primeira ID é a dele.

Ao fim da volta no anel, o nó que iniciou a eleição tem uma mensagem com a ID de todos os nós ativos, então ele escolhe o nó com a maior ID e realiza o processo de passar a mensagem pelo anel novamente, mas agora é uma mensagem "LÍDER" (como mostrado na Figura 12.a) com a ID do nó que se tornou o líder. Esta mensagem para de circular no anel quando chegar ao nó que a criou (como mostrado na Figura 12.b), e então o mesmo finaliza o processo de eleição.

(a) (b)

(28)

27

3.7. Algoritmo yo-yo

O yo-yo (Santoro, 2007) é um algoritmo de busca mínima, onde o nó com menor identificação (ID) é escolhido como líder. Ele consiste em duas partes: pré-processamento (chamada setup) e sequência de iterações.

3.7.1. Setup

Esta fase de pré-processamento é chamada de setup, onde todos os componentes tem uma ID única e conhecem as de seus vizinhos, onde são criados enlaces diretos direcionando da menor ID para a maior, construindo assim um grafo direcionado.

Segundo Santoro (2007) o grafo resultante é acíclico e neste grafo existem três tipos de nós: source, sink e internal. O source é um nó que possui ID menor que todos os seus vizinhos e onde os enlaces só saem dele (ele é um mínimo local); sink é um nó que é o maior que todos os vizinhos, onde os enlaces só chegam nele e nenhum sai dele (ele é um máximo local); e internal é um nó que não é um source e nem um sink. Na Figura 13.a é mostrado o sistema inicial e na Figura 13.b o setup onde, após criado o grafo, cada nó já sabe o papel que irá desempenhar na eleição. Na Figura 13.b, os nós 1 e 2 são sources, os nós 15 e 12 são sinks e os demais nós, internals.

(a) (b) Figura 13. Organização do cenário no setup

3.7.2. Iteração

O centro do algoritmo é uma sequência de iterações onde cada iteração consiste em um estágio da eleição onde os aptos a líder são os sources, pois o yo-yo é um algoritmo de busca mínima.

(29)

3.7.3. YO-

Segundo Santoro (2007), esta fase é iniciada pelos sources para que através dos vizinhos ele possa mandar a sua mensagem (sua própria ID) até os sinks. Inicialmente, um

source manda o valor para os enlaces de saída, os nós internals aguardam até receber o valor

de todos os enlaces de entrada e em seguida pega o valor mínimo e passa adiante para os enlaces de saída (Figura 14.a). Os nós sinks, por sua vez, aguardam receber o valor de todos os vizinhos com enlaces de saída, escolhe o menor ID e inicia a segunda fase, -YO.

3.7.4. -YO

Segundo Santoro (2007), esta fase é iniciada pelos sinks para eliminar alguns candidatos a líder e transformar alguns sources em sinks ou internals. Um sink vai mandar para todos os vizinhos com enlaces de entrada pra ele um “sim”, cuja mensagem possui um ID menor, e um “não” para aqueles que tiverem mensagem com ID maior. Um nó interno espera receber a mensagem de todos os enlaces de saída e se receber um “sim” de todos, ele manda “sim” para os vizinhos que tem enlaces de saída para ele com menor ID e um “não” para os demais. Por fim, os sources esperam até receber mensagens de todos os seus enlaces de saída. Se todos os votos forem “sim”, ele continua ativo para a próxima iteração, se pelo menos um voto for “não”, ele não mais é um candidato (Figura 14.b).

(a) (b) Figura 14. Sequência de iterações YO- e –YO

A Figura 14 mostra como vão ocorrer as fases YO- e -YO. Na fase YO- a mensagem com a ID dos sources, nós 1 e 2, é passada vizinho a vizinho e só pode ser repassada após todos vizinhos que direcionam um enlace para o nó mandarem suas respectivas mensagens, então é feita uma comparação e segue a menor mensagem. As mensagens vão seguir por

(30)

29

todos os nós até os sinks e lá é iniciada a fase -YO que é responsável por reduzir o número de

sources. É feita uma comparação entre a mensagem que o sink possui e a mensagem dos

vizinhos, para os que tiverem a mesma mensagem recebem um "sim" e os que não tiverem recebem um "não", como o nó 2 recebeu "não" como resposta então ele não está mais apto, acaba a eleição com o nó 1 sendo eleito líder.

3.8. Características dos algoritmos

Na Tabela 1 temos uma classificação dos algoritmos apresentados neste trabalho, listando algumas características de cada.

Tabela 1. Características dos algoritmos

Referência Topologia Especificidades

Algoritmo de LeLann (Le Lann, 1977)

anel unidirecional Foi desenvolvido para recuperar um CT e limita-se à topologia de anel unidirecional.

Algoritmo de Chang e Roberts (Chang e Roberts, 1979)

anel unidirecional Limita-se a esta topologia e foi desenvolvido com base no trabalho de Le Lann (1977), porém difere em utilizar uma única mensagem para realizar a eleição.

Algoritmo do valentão (Garcia-Molina, 1982)

fully-connected Necessita de que todos nós tenham enlaces com os nós mais “robustos” que ele, então limita-se a topologias fully-connected.

Algoritmo de Singh (Singh, 1997)

fully-connected Realiza eleição em topologias fully-connected, mas ao iniciar a eleição precisa dividir a rede em SAs.

Algoritmo de Vasudevan (Vasudevan, Kurose e Towsley, 2004) independente de topologia

Desenvolvido para suportar mudanças de topologia de redes ad hoc antes, durante ou depois da eleição, então esse algoritmo não tem restrição quanto à topologia. Utiliza um conceito de árvore durante a eleição.

Algoritmo tradicional em anel (Tanenbaum e Steen, 2007)

anel unidirecional É limitado ao uso em topologia de anel unidirecional e passa duas mensagens durante a eleição, uma para listar as IDs do anel e outra para dizer quem venceu a eleição e tornou-se líder.

Algoritmo yo-yo (Santoro, 2007)

árvore acíclica Precisa de criar um grafo acíclico para executar uma eleição, tornando-se assim limitado ao uso de árvores acíclicas.

(31)

O algoritmo de Le Lann (1977), algoritmo de Chang e Roberts (1979) e algoritmo tradicional em anel (2007) são limitados a uso em topologias em anel unidirecional diferindo entre eles na forma como ocorre a eleição, pois todos usam mensagens “ELEIÇÃO”, porém o conteúdo e a forma de inicialização desta variam de acordo com o algoritmo. O algoritmo do valentão (1982) limita-se ao uso em redes fully-connected junto ao algoritmo de Singh (1997), mas este para a eleição subdivide o sistema em SAs. O algoritmo yo-yo (2007) necessita de topologia em árvore para ser executada uma eleição, pois necessita de gerar um grafo acíclico. Já o algoritmo de Vasudevan (2004) foi desenvolvido para uso em redes ad hoc, onde falhas são eminentes, então suporta a mudança de topologia e adequa-se a todos cenários.

3.9. Cenários de Aplicação

Foram vistos acima alguns algoritmos de eleição e suas particularidades para execução, mas somente executando a eleição sem estarem encaixados em algum cenário. Para melhor entendimento da usabilidade, nesta seção são explanados alguns trabalhos que em seus cenários necessitam do uso de algoritmos para eleição de líder. Estes trabalhos, respectivamente, são: Um Algoritmo Distribuído para Eleição de Líderes de Clusters Semânticos em Redes de Sensores sem Fio (Hermeto et al., 2013), Um estudo do BitTorrent em redes ad hoc sem fio críticas com localidade espaço-temporal (Souza e Nogueira, 2008) e PROC: Um Protocolo Pró-ativo com Coordenação de Rotas em Redes de Sensores sem Fio (Macedo et al., 2004).

3.9.1. Eleição de Líder de Clusters Semânticos

Segundo Hermeto et al. (2013) um problema para redes de sensores sem fio (RSSF) é a energia que os sensores consomem, porque como a fonte de energia mais comum é a bateria, a vida útil da rede é curta. Visando prolongar a vida útil são utilizadas técnicas eficientes para economizar a energia de uma RSSF. A clusterização é uma dessas técnicas e pode ser aplicada em RSSFs de topologia hierárquica, segundo Hermeto et al. (2013) ela consiste em organizar a rede em grupos (chamados “clusters”), sendo cada cluster composto por nós comuns e um nó CH (cluster-head) ou líder com função de receber os dados dos nós comuns e encaminhar através de comunicação multi salto (multi hop) até o nó sorvedouro, que é o nó que coleta os dados da rede. Ao formar os clusters, tradicionalmente, os sensores são agrupados através de algoritmos que medem a intensidade do sinal recebido (Received

(32)

31

Signal Strength Indicator – RSSI). Isto faz com que eles sejam agrupados de acordo com a

localização geográfica de cada um, ou seja, os sensores que se encontram mais perto formam um cluster.

Há diversos algoritmos para eleição em um cluster, mas levam em conta a RSSI sem analisar a energia residual de cada nó, então estes algoritmos ao invés de otimizar a rede tem a possibilidade de diminuir ainda mais a vida útil dela. Uma solução para isso foi proposta por (Hermeto et al, 2013) que explana um algoritmo que além de levar em conta a RSSI também leva em conta a energia de cada nó e a clusterização é feita de forma semântica, sendo agrupados os nós de acordo com o tipo de dados que estão transmitindo. Com isso há uma economia maior ainda de energia, pois os nós são agrupados em um cluster lógico se estiverem mandando o mesmo tipo de informação para o nó servidouro, assim os dados só precisam ser enviados por um nó.

A eleição ocorre levando em conta que os nós estão já previamente agrupados fisicamente em clusters, então é analisada através de um conjunto de regras a energia de cada e a RSSI, a saída dessa análise é a variável Chance, composta por nove regras que medem a probabilidade de um nó se tornar um líder semântico. Após todos conhecerem as chances de ser tornarem líderes é feita a eleição, o nó analisa a sua chance e de seus vizinhos, se a sua for maior, ele vota em si, caso contrário ele vota no vizinho com maior chance. Vence a eleição e torna-se o líder semântico do cluster o nó que tiver a maior quantidade de votos. No caso de empate na quantidade de votos é usada à quantidade de energia residual como critério para o desempate.

3.9.2. Redes críticas ad hoc autonômicas

Algumas vezes é necessário estabelecer um meio de comunicação para um grupo de pessoas que, para realizar seu trabalho, precisam de informações em situações emergenciais, como bombeiros, paramédicos e policiais. Souza e Nogueira (2008, p. 329) explicam que: “Redes críticas são redes ad hoc formadas de forma autonômica e rápida para prover

infraestrutura de comunicação em situações de emergência onde não existe infraestrutura prévia ou cuja infraestrutura foi danificada.”. Então esse tipo de rede deve utilizar seus

recursos de forma eficiente, pois sabem que os mesmos são limitados. Levando isso em consideração, a arquitetura peer-to-peer (P2P) por ser eficiente é ideal para disseminar as informações nesse tipo de rede.

(33)

Uma abordagem é feita no trabalho de (Souza e Nogueira, 2008) com o BitTorrent como rede de compartilhamento de arquivos ideal para redes críticas, porém os autores acrescentam que o BitTorrent não trata a localidade espaço-temporal, quando nós próximos começam a baixar o mesmo arquivo. Isto é um problema porque ao mesmo tempo em que um dos usuários dessa rede precisa dos arquivos, o outro também precisa, gerando assim um fluxo redundante de dados na rede que a faz ficar mais lenta. Em uma situação de emergência que precisa de rapidez e eficiência na distribuição dos dados isso é um grande problema. Para resolver isso os mesmos autores propõem agrupar os nós vizinhos que estão baixando o mesmo arquivo em grupos e eleger um líder para organizar a transferência em multicast aos demais nós da rede.

A eleição ocorre de forma simples, um nó manda uma mensagem para encontrar vizinhos e espera alguns segundos, caso receba a resposta de pelo menos dois vizinhos, ele inicia a eleição concorrendo a ser o líder do grupo. Cada nó calcula uma heurística de como ele seria bom se fosse o líder da rede, então o candidato com maior “utilidade” vence a eleição e torna-se o líder da rede, em caso de empate vence o nó que tiver a menor ID.

3.9.3. Coordenação de Rotas

Um desafio em uma RSSF é estabelecer rotas para os nós se comunicarem através de

multi-hop (multi saltos), isto é, quando um nó se comunica com seu vizinho e este com o seu

vizinho e assim por diante. Para os nós repassarem os dados coletados por cada um até a Estação Base (EB), onde os dados de toda rede são coletados, eles necessitam ir por um caminho mínimo. Este caminho supre a necessidade de uma comunicação mais rápida e eficiente em termos de consumo de energia.

Então os autores de (Macedo et al., 2004) propõem um protocolo chamado PROC (Proactive ROuting with Coordination) que constrói uma árvore acíclica de roteamento, chamada backbone, que determina qual rota os nós tomam para encaminhar os dados até a EB. O backbone é criado em duas etapas, a primeira consiste nos nós executarem uma heurística para ver se poderá ser líder, sendo os líderes ligados diretamente à raiz da árvore (à EB). Na segunda etapa os líderes podem indicar outros nós para serem líderes caso o

backbone esteja incompleto, ele só está completo quando todos os nós estão conectados a um

líder ou à EB. O PROC fica reconstruindo o backbone, isto faz com que as rotas sejam atualizadas e os líderes também, este intervalo entre atualizações e reconstrução é chamado de ciclo.

(34)

33

Segundo Macedo et al. (2004) a eleição ocorre quando a EB manda uma mensagem de sincronização para a rede, com isso um ciclo tem início. O líder será escolhido de acordo com heurísticas que determinem a quantidade de energia para assim prolongar o tempo de vida da rede. Os nós que não estão ligados diretamente à raiz vão se ligar com um nó que esteja (um líder) formando assim grupos. Caso o backbone não esteja completo, será executada a segunda etapa.

(35)

4. SIMULAÇÕES E RESULTADOS

Neste capítulo são apresentados os resultados das simulações feitas no NetLogo, uma ferramenta para modelagem de sistemas distribuídos em um ambiente virtual. Para a análise, modelagem e simulação foram utilizados cinco algoritmos de eleição em cinco cenários diferentes, totalizando 25 simulações. Então o capítulo está organizado mostrando a quantidade de tempo para execução de uma eleição, a quantidade de mensagens trocadas durante a eleição e a análise e discussão sobre o desempenho dos algoritmos.

4.1. Quantidade de tempo para execução de uma eleição

Os resultados das simulações, com relação ao tempo médio (em ticks) para execução de uma eleição, são apresentados em resumo na Figura 15.

Figura 15. Quantidade de tempo em relação à quantidade de nós do cenário 0 275 550 825 1100 0 100 200 300 400 500 Tem p o ( em t ic ks) Quantidade de nós do cenário

Quantidade de tempo em relação a quantidade de nós

Chang e Roberts tradicional em anel -random tradicional em anel - um valentão yo-yo

(36)

35

A Tabela 2 mostra o desempenho nas simulações de cada algoritmo em relação ao tempo, os valores máximos, são representados por max; os valores mínimos, representados por min; o desvio-padrão, representado por DP; e a média normal, representada por med. O algoritmo tradicional em anel random e um tiveram o maior tempo para executar uma eleição, 1000 ticks; o valentão teve o menor tempo, 3 ticks.

Tabela 2. Dados das simulações com relação ao tempo

Topologia Chang e Roberts tradicional em anel - random tradicional

em anel - um valentão yo-yo

15 nós max 29 30 30 5 19 min 15 30 30 3 9 DP 4,421 0 0 0,507 2,545 med 22,1 30 30 4,867 14,267 30 nós max 59 60 60 5 38 min 30 60 60 3 19 DP 8,707 0 0 0,362 3,825 med 45,95 60 60 4,933 28,517 60 nós max 119 120 120 5 70 min 61 120 120 3 47 DP 18,030 0 0 0,183 4,692 med 88,217 120 120 4,983 57,467 120 nós max 239 240 240 5 134 min 120 240 240 3 97 DP 36,435 0 0 0,182 6,948 med 179,021 240 240 4,983 113,758 500 nós max 999 1000 1000 5 518 min 501 1000 1000 3 424 DP 145,93 0 0 0,063 13,992 med 754,99 1000 1000 4,988 473,405

(37)

Para concluir a eleição no cenário com 15 nós, em média, o algoritmo de Chang e Roberts demorou 22,1 ticks, o tradicional em anel - random e tradicional em anel - um demoraram 30 ticks cada, o valentão demorou 4,867 ticks e o yo-yo demorou 14,267 ticks. E no cenário com 500 nós, para concluir a eleição, em média, o algoritmo de Chang e Roberts demorou 754,99 ticks, o tradicional em anel - random e tradicional em anel - um demoraram 1000 ticks cada, o valentão demorou 4,998 ticks e o yo-yo demorou 473,405 ticks.

4.2. Quantidade de mensagens trocadas

Os resultados das simulações, com relação à quantidade média de mensagens trocadas para execução de uma eleição, são apresentados em resumo na Figura 16.

Figura 16. Quantidade de mensagens em relação à quantidade de nós do cenário

A Tabela 3 mostra o desempenho nas simulações de cada algoritmo em relação à quantidade de mensagens, os valores máximos, representados por max; os valores mínimos,

0 70000 140000 210000 280000 0 100 200 300 400 500 Qua n tid ad e d e M en sag en s Quantidade de nós do cenário

Quantidade de mensagens em relação a quantidade de nós

Chang e Roberts tradicional em anel -random tradicional em anel - um valentão yo-yo

(38)

37

representados por min; o desvio-padrão, representado por DP; e a média normal, representada por med. Os algoritmos de Chang e Roberts e valentão tiveram a menor troca de mensagens para executar uma eleição, 15 mensagens; o algoritmo yo-yo teve a maior troca de mensagens, 251464 mensagens.

Tabela 3. Dados das simulações com relação à quantidade de mensagens

Topologia Chang e Roberts

tradicional em anel - random

tradicional

em anel - um valentão yo-yo

15 nós max 29 90 30 225 252 min 15 30 30 15 168 DP 4,421 21,552 0 61,501 20,939 med 22,1 49 30 84,667 209,333 30 nós max 59 360 60 900 944 min 30 60 60 30 768 DP 8,707 102,102 0 257 40,044 med 45,95 153 60 295,4 868,533 60 nós max 119 1440 120 3600 3700 min 61 120 120 60 3344 DP 18,030 434,145 0 1108,659 72,706 med 88,217 803 120 1304,667 3530,2 120 nós max 239 5760 240 14400 14816 min 120 240 240 120 13736 DP 36,435 1659,372 0 4573,224 175,658 med 179,021 2854 240 5063,117 14276 500 nós max 999 100000 1000 249001 251464 min 501 1000 1000 500 247112 DP 145,93 28840,97 0 76022,251 701,451 med 754,99 50943 1000 85979,64 249459,068

Para concluir a eleição no cenário com 15 nós, em média, o algoritmo de Chang e Roberts trocou 22,1 mensagens, os algoritmos tradicional em anel - random e tradicional em

(39)

anel - um trocaram, respectivamente, 49 e 30 mensagens, o valentão trocou 84,667 mensagens e o yo-yo trocou 209,333 mensagens. E no cenário com 500 nós para concluir uma eleição, em média, o Chang e Roberts trocou 754,99 mensagens em média, os algoritmos tradicional em anel - random e tradicional em anel - um trocaram, respectivamente, 50943 e 1000 mensagens, o valentão trocou 85979,64 mensagens e o yo-yo trocou 249459,068 mensagens em média.

4.3. Análise e Discussão

Para realizar as simulações foram utilizados cinco algoritmos em cinco cenários diferentes, no algoritmo em anel foi adicionada uma restrição com relação à quantidade de nós que iniciam a eleição para alguns nós até 20% da quantidade total de nós e para um único nó. Isso foi feito por conta de que o autor diz que não é considerado desperdício mais de um nó iniciar a eleição por conta que o resultado será o mesmo, porém nas simulações fica claro que é um desperdício de banda consumida, visto que o tempo mantém-se constante em ambos os casos.

Então a partir dos resultados das simulações, observa-se que o algoritmo de Chang e Roberts tem o tempo médio para execução de uma eleição dentre as vinte e cinco simulações apresentadas e tem a menor quantidade de mensagens. Nele a quantidade de mensagens será sempre igual à quantidade de tempo, porque para cada passo da eleição é necessário um tick e uma mensagem. Então no melhor caso do algoritmo, a quantidade de mensagens e tempo é igual a , onde M é a quantidade de mensagens e T é a quantidade de tempo e n representa os nós do sistema, e no pior caso .

Observa-se que o algoritmo tradicional em anel é o que mais consome tempo para finalizar uma eleição, porém a quantidade de mensagens utilizada pelo mesmo é a segunda menor, levando em conta a restrição e a quantidade média entre as vinte e cinco simulações, com o funcionamento do algoritmo sem restrição. Percebe-se também que ao aumentar a quantidade de nós na topologia, o tempo de uma eleição do algoritmo em anel aumenta consideravelmente em relação aos outros três algoritmos. No caso restrito a um, , tendo assim um crescimento linear. E no outro caso, e , onde Ni é igual à quantidade de nós que iniciam a eleição.

O algoritmo do valentão é o que demora menos para executar uma eleição dentre as vinte e cinco simulações e o tempo utilizado se mantém constante independente da quantidade de nós. Mas o número de mensagens enviadas cresce exponencialmente ao aumentar a

(40)

39

quantidade de nós, visto que ele é utilizado em uma rede fully-connected, então ele consome muito do sistema deixando a rede sobrecarregada durante a eleição, quanto mais nós tiver mais sobrecarregada a rede fica. Em seu melhor caso, quando nó de maior ID inicia a eleição, . No pior caso, o menor nó inicia a eleição, .

O algoritmo yo-yo, em todas simulações, apresentou o maior número de mensagens de acordo com a quantidade de nós e o segundo menor tempo. Ao analisar o funcionamento é visto que ele é um algoritmo muito síncrono, e sincronia é o principal problema para ser resolvido em sistemas distribuídos. A quantidade de mensagens utilizada pelo algoritmo é ( ) onde l é o número de enlaces total da topologia.

Os algoritmos de Chang e Roberts e tradicional em anel são restritos para execução de eleições em anel unidirecional, necessitando que os nós estejam ordenados em anel físico ou lógico; o algoritmo do valentão é restrito a uma rede fully-connected, onde todos os nós tem um enlace com todos os outros nós do sistema; já o algoritmo yo-yo utiliza topologia em árvore e limita-se a topologias acíclicas, porque ele precisa de um grafo para a execução do algoritmo de eleição. Assim, o algoritmo do valentão apresenta o melhor tempo de execução e o algoritmo de Chang e Roberts apresenta o melhor resultado com relação à quantidade de mensagens enviadas.

(41)

5. CONCLUSÃO

Geralmente os algoritmos são desenvolvidos para resolver um problema de uma topologia, então nem sempre o algoritmo mais rápido pode realizar a eleição em determinado cenário. Foram utilizadas duas variáveis para medir o desempenho: o tempo (em ticks) e a quantidade de mensagens. O algoritmo do valentão teve o menor tempo, porém ele não funcionaria em uma topologia em anel, da mesma forma que o algoritmo de Chang e Roberts teve a menor quantidade de mensagens, mas não funciona em uma topologia fully-connected. Mas observa-se que o algoritmo de Chang e Roberts teve melhor desempenho, em todos os cenários, que o algoritmo tradicional em anel, random e um, todos executando a eleição na topologia de anel físico ou lógico. Com relação à quantidade de tempo, todos os algoritmos variam de acordo com o tamanho do sistema com exceção do algoritmo do valentão. Quanto à quantidade de mensagens, esta varia de acordo com o tamanho do sistema, em alguns casos, e com relação a qual nó irá iniciar a eleição.

Como trabalhos futuros, pretende-se aprimorar o estudo e as modelagens dos algoritmos, comparando-os com outros algoritmos distribuídos de mesma topologia. Também pretende-se implementar e estudar a questão de tolerância a falhas, sendo estas no envio da mensagem, no tempo limite atingido (timeout), nas mensagens corrompidas, na inatividade de nós no sistema e no atraso entre os nós, e reavaliar o desempenho dos algoritmos com relação a quantidade de tempo e mensagens.

O resultado final desta pesquisa serve como fonte de estudos para algoritmos de eleição em sistemas distribuídos, mostrando que alguns algoritmos distribuídos precisam de um líder e que o mesmo pode ser escolhido de diversas formas, contudo há uma melhor maneira para cada cenário. Neste trabalho todo estudo realizado está exposto de forma clara e prática nos gráficos e no referencial teórico.

(42)

41

REFERÊNCIAS BIBLIOGRÁFICAS

ALENCAR, Jucele França. Algoritmos para eleição de líder em sistemas distribuídos. 100f. Dissertação (Mestrado em Ciências da Computação). Universidade Estadual de Campinas - Instituto de Computação. Campinas, 1998.

ANDRADE, Maria Margarida de. Introdução à metodologia do trabalho científico: elaboração de trabalhos na graduação. - 7. ed, 2. Reimpressão - São Paulo: Atlas, 2006.

CERVO, Amado Luiz; BERVIAN, Pedro Alcino; DA SILVA, Roberto. Metodologia científica. 6. ed. São Paulo: Pearson Prentice Hall, 2007.

CHANG, Ernest; ROBERTS, Rosemary. An Improved Algorithm for Descentralized Extrema-Finding in Circular Configuration of Processes. Communications of the ACM v. 22. p. 281-283. Pocurar o lugar, 1979.

COLOURIS, George; DOLLIMORE, Jean; KINDBERG, Tim. Sistemas Distribuídos Conceitos e Projeto. 4. ed. Porto Alegre: Bookman Editora, 2007.

GARCIA-MOLINA, Hector. Elections in a Distributed Computing System. IEEE Transactions on Computers. v. C-31. n. 1. p. 48-59, 1982.

HERMETO, Rodrigo T. et al. Um Algoritmo Distribuído para Eleição de Líderes de Clusters Semânticos em Redes de Sensores sem Fio. V Simpósio Brasileiro de Computação Ubíqua e Pervasiva. p. 2022- 2031. Maceió, 2013.

JIA, Weijia; ZHOU, Wanlei. Distributed network systems: from concepts to implementations. Springer, 2005.

LAKATOS, Eva Maria; MARCONI, Marina de Andrade. Fundamentos de metodologia científica. 5. ed. São Paulo: Atlas, 2003.

LE LANN, Gérard. Distributed systems- toward a formal approach. IFIP Congress Proceedings. p. 155-160. Toronto, 1977.

MACEDO, Daniel Fernandes et al. PROC: Um Protocolo Pró-ativo com Coordenação de Rotas em Redes de Sensores sem Fio. 22° Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos. p. 571-574. Gramado, 2004.

RICHARDSON, Roberto Jarry. Pesquisa social: métodos e técnicas. et al. São Paulo: Atlas, 1985.

SANTORO, Nicola. Design and Analysis of Distributed Algorithms. New Jersey: John Wiley & Sons, Inc., 2007.

SINGH, Gurdip. Efficient leader election using sense of direction. Distributed Computing v. 10. p. 159-165, 1997.

(43)

SOUZA, Carlos; NOGUEIRA, José Marcos. Um estudo do BitTorrent em redes ad hoc sem fio críticas com localidade espaço-temporal. 26° Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos. p. 329-342. Rio de Janeiro, 2008.

TANENBAUM, Andrew S.; STEEN, Maarten van. Sistemas distribuídos: princípios e paradigmas. 2. ed. São Paulo: Pearson Prentice Hall, 2007.

VASUDEVAN, Sudarshan; KUROSE, Jim; TOWSLEY, Don. Design and Analysis of a Leader Election Algorithm for Mobile Ad Hoc Networks. Proceedings of the 12th IEEE International Conference on Network Protocols, p.350-360. Washington, 2004.

WILENSKY, Uri. NetLogo. Center for Connected Learning and Computer-Based Modeling. Northwestern University, Evanston, 1999.

Referências

Documentos relacionados

Figura 4.10 – Fluxo de CO2 para as áreas de footprint de três torres localizadas em unidades experimentais submetidas a diferentes tipos de manejo pastoril Rotativo,

Nesses anos (anos letivos 1984/85 e 1985/86) houve várias atividades que envolveram o CRPD e filarmónicas da ilha (entr. No ano letivo seguinte o professor Francisco Paquete apenas

Durantes nove dias, 30 de abril a 11 de maio, a CEDEAO for- mou em Eurotrace SQL quatro colaboradores do INE, dois do sexo feminino e dois do sexo masculino, um do Depar- tamento

ITIL, biblioteca de infraestrutura de tecnologia da informação, é um framework que surgiu na década de mil novecentos e oitenta pela necessidade do governo

O estudo múltiplo de casos foi aplicado para identificar as semelhanças e dissemelhanças na forma como as empresas relacionam seus modelos de negócios e suas

• Expressão para a energia cinética do sistema 0.8 • Expressão para a energia potencial do sistema 0.8 • Aplicação da equação de Lagrange para obter a equação de movimento

After the eval- uation of the influence of each modification of the surfaces on the internal air temperatures and energy consumption of the compressor a final test was done with

Therefore, the analysis of suitability of the existing transportation network for riding bicycle in Coimbra should address two important aspects: (i) identifying