INF2056: Algoritmos Distribuídos
INF1807 - Tópicos em Engenharia de Computação (Optativa Graduação)
2as. feiras, 10-13 hs
Sala: (a ser definida)
Prof. Markus Endler
Sala RDC 503
endler@inf.puc-rio.br
www.inf.puc-rio.br/~endler/courses/DA
Objetivo
O objetivo desta disciplina é apresentar alguns algorítmos fundamentais
usados em sistemas distribuídos, os modelos de sistema assumidos para estes
algorítmos e considerações práticas para a implementação dos mesmos.
Além de conhecerem os conceitos teóricos, os alunos deverão obter experiência
prática com a implementação de alguns algorítmos.
Tópicos
- Modelos de Sistemas Distribuídos
- Causalidade e Relógios Lógicos
- Formas de Comunicação
- Exclusão Mútua Distribuída
- Eleição de Coordenador
- Problemas de Acordo Distribuído
- Algoritmo de Snapshot
- Modelo de uma Execução Distribuída e Estados Globais
- Avaliação de Predicados Globais
- Multicast Confiável e Gerência de Grupos
- Seminários apresentados pelos alunos (Relação dos Assuntos apresentados nos anos anteriores)
Bibliografia Principal
- A. Kshemkalyani and M. Singhal, Distributed Computing: Principles, Algorithms and Systems,, Cambridge University Press, 2008
- R.Chow and T.Johnson, Distributed Operating Systems and
Algorithms, (Capítulos 9 a 12), Addison Wesley, 97
- G. Coulouris, J. Dollimore and T. Kindberg, Distributed Systems: Concepts and Design, (Capítulos 2, 10,11 e 14), Addison Wesley, 3rd Edition, 2001.
Bibliografia complementar
- Pankaj Jalote, Fault Tolerance in Distributed Systems,
Prentice Hall, 1994.
- Michel Raynal, Distributed Algorithms and Protocols ,
John Wiley & Sons, 1988.
- Sape Mullender, Distributed Systems, Addison Wesley,
1992 (Capítulos 2, 4, 5)
- Nancy Lynch, Distributed Algorithms , Morgan Kaufmann Publ.,
1996.
- Artigos avulsos, como:
Survey and Comparison of Peer-to-Peer Overlay Network Schemes
Outros artigos sobre Algoritmos Distribuidos e Cloud computing aqui
Pré-requisitos
- Certa experiência com programação em linguagem Orientada a Objeto (C++ ou Java)
- Noções básicas de Sistemas Operacionais e Redes
Trabalhos
Haverá dois trabalhos de implementação, nos quais o aluno deverá implementar alguns
algorítmos distribuídos uando o framework e simulador: Sinalgo , desenvolvido na ETH Zurich. Veja o tutorial do Sinalgo.
Notas
Transparências
Aqui voce encontra as transparências da disciplina.
Artigos e outros Ponteiros