Um ambiente para ensino de algoritmos de consenso

AUTOR(ES)
DATA DE PUBLICAÇÃO

2004

RESUMO

Sistemas distribuídos são aqueles em que vários processos autônomos são executados em máquinas distintas de uma rede de computadores para a realização de uma tarefa conjunta, sendo que a comunicação entre eles é através de troca de mensagens. Uma das principais características, cada vez mais presente nesses sistemas, é o compartilhamento de informação. Isso implica que eles devem garantir que o valor dessa informação é consistente para todos os processos - podemos citar, por exemplo, a manutenção de réplicas de base de dados. Para garantir uma informação consistente, todos os processos devem convergir para um mesmo valor, obtendo um valor de consenso para a informação. Na presença de falhas, sejam elas provenientes de processo ou de comunicação, a literatura nos mostra que obter consenso torna-se um problema de solução não trivial. Dada a importância desse assunto nas aplicações atuais e a vasta literatura que dificulta o início de seu estudo, este trabalho tem como objetivo oferecer um material sucinto e didático que venha facilitar o estudo inicial sobre algoritmos distribuídos para o problema de consenso, tendo como foco principal os alunos de graduação. Para tanto, contextualizamos o problema de consenso em sistemas distribuídos; descrevemos alguns algoritmos com características semelhantes; propomos um estudo detalhado do algoritmo definido por Pease, Shostak e Lamport [1], que chamamos de Algoritmo Fundamental; e apresentamos uma arquitetura em Java como subsídio para a implementação desses algoritmos, juntamente com uma implementação exemplo do Algoritmo Fundamental.

ASSUNTO(S)

processamento distribuido tolerancia a falha (computação) algoritmos - estudo e ensino

Documentos Relacionados