Departamento de Informática (UM)

Página de Unidade Curricular

DesignaçãoCódigoCursoRegimeRegente

Tolerância a Faltas

9427 [ME78ME7800006091]

Mestrado em Engenharia Informática [MEINF]

S2

Rui Carlos Mendes Oliveira

Objetivos

A relevância da distribuição na confiabilidade de sistemas informáticos deverá tornar-se evidente para os alunos após a introdução dos fundamentos de tolerância a faltas, diversos conceitos como falta, erro e falha, métricas de confiabilidade e metodologias de tratamento de erros, e o estudo dos vários modelos de faltas da literatura.
Os desafios centrais à conceção de sistemas confiáveis, tolerantes a faltas, serão apresentados com base no problema fundamental de consensos distribuído e tolerante a faltas em vários modelos de faltas. Diversas abordagens algoritmicas serão estudadas.
O estudo da replicação com coerência forte na presença de faltas por omissão e da replicação de transações em sistemas abertos na presença de faltas bizantinas apetrechará os alunos com os conhecimentos necessários para planear, implementar e avaliar sistemas distribuídos que resolvem problemas de escala e confiabilidade.

Programa

1. Fundamentos de tolerância a faltas: conceitos e modelos.
2. Acordo em sistemas distribuídos (consenso): impossibilidade, deteção de faltas, algoritmos.
3. Replicação com coerência forte. Caso de estudo: replicação de sistemas de bases de dados.
4. Tolerância a faltas bizantinas: algoritmos e aplicações. Caso de estudo: blockchain.

Bibliografia

Introduction to Reliable and Secure Distributed Programming. Christian Cachin, Rachid Guerraoui, Luís Rodrigues, Springer.

Fault-Tolerant Message-Passing Distributed Systems: An Algorithmic Approach. Michel Raynal, Springer.

Replication: theory and practice, B. Charron-Bost, F. Pedone, A. Schiper (Eds), Springer.

Distributed Systems for System Architects, Paulo Veríssimo, Luís Rodrigues, Kluwer Academic.

Reliable Distributed Systems, Kenneth Birman, Springer.

Resultados da aprendizagem

- Explicar a relevância da distribuição na confiabilidade de sistemas informáticos.
- Caracterizar desafios em sistemas distribuídos em termos de problemas e modelos abstratos.
- Discutir o papel de algoritmos distribuídos (e.g. consenso) na solução de problemas de confiabilidade.
- Implementar sistemas distribuídos que resolvem problemas de escala e confiabilidade.
- Avaliar sistemas distribuídos que resolvem problemas de escala e confiabilidade.

Método de avaliação

A avaliação inclui duas componentes: exame escrito individual e projeto em grupo.

Funcionamento

Turno: T 1; Docente: Rui Carlos Mendes Oliveira; Dep.: DI; Horas: 15.
Turno: PL 1; Docente: José Orlando Roque Nascimento Pereira; Dep.: DI; Horas: 30.

[ Outras UCs do Departamento ]