Disciplina
Sistemas Distribuídos Tolerantes a Faltas
Área
Área Científica de Arquitectura e Sistemas Operativos > Sistemas Operativos e Sistemas Distribuídos
Activa nos planos curriculares
METI 2018 > METI 2018 > 2º Ciclo > Áreas de Especialização > Segurança da Internet > Sistemas de Elevada Confiabilidade
METI 2021 > METI 2021 > 2º Ciclo > Área Principal > Especializações > Especialização em Segurança da Internet > Informática > Sistemas de Elevada Confiabilidade
MEIC-T 2021 > MEIC-T 2021 > 2º Ciclo > Área Principal > Agrupamentos > Sistemas Distribuídos > Sistemas de Elevada Confiabilidade
MEIC-T 2015 > MEIC-T 2015 > 2º Ciclo > Agrupamentos > Sistemas Computacionais > Sistemas de Elevada Confiabilidade
MERC 2006 > MERC 2006 > 2º Ciclo > Área de Especialização Principal > Aplicações Seguras, Móveis Entre-Pares e na Nuvem > Sistemas de Elevada Confiabilidade
MEIC-A 2021 > MEIC-A 2021 > 2º Ciclo > Area Principal > Agrupamentos > Sistemas Distribuídos > Sistemas de Elevada Confiabilidade
MEIC-A 2015 > MEIC-A 2015 > 2º Ciclo > Agrupamentos > Sistemas Computacionais > Sistemas de Elevada Confiabilidade
MEIC-A 2006 > MEIC-A 2006 > 2º Ciclo > Área de Especialização Principal > Sistemas Distribuídos > Sistemas de Elevada Confiabilidade
Nível
Exame (40%), participação nas aulas (20%), projecto (40%).
Tipo
Não Estruturante
Regime
Semestral
Carga Horária
1º Semestre
3.0 h/semana
1.5 h/semana
147.0 h/semestre
Objectivos
Compreender os problemas fundamentais que se colocam no desenvolvimento de aplicações distribuídas tolerantes a faltas. Aprender um conjunto de abstracções chave para suportar o desenvolvimento de aplicações distribuídas tolerantes a faltas. Aprender a aplicar estas abstracções através da experiência prática com sistemas de comunicação em grupo.
Programa
A fiabilidade e disponibilidade são hoje atributos fundamentais a ter em conta na concepção, concretização e instalação de sistemas distribuídos. No entanto, é surpreendentemente difícil assegurar a cooperação robusta entre processos quando estes podem falhar. Para permitir que o arquitecto de sistema domine esta complexidade, o curso introduz um conjunto de abstracções fundamentais para o suporte ao desenvolvimento de aplicações distribuídas confiáveis e descreve os algoritmos que as concretizam. Nomeadamente, abordam-se os seguintes temas: Abstracções básicas: processos, elos, detectores de falhas. Difusão fiável: difusão melhor-esforço, regular, uniforme, probabilista e causal. Memória partilhada: registos regulares e registos atómicos. Consenso distribuído. Variantes do consenso: difusão totalmente ordenada, difusão com terminação, confirmação atómica, filiação em grupo, sincronia na vista. A moldura de comunicação em grupo Appia. Durante o curso, os alunos irão também desenvolver um projecto que lhes permitirá aplicar estas abstracções na prática.
Metodologia de avaliação
Exame (40%), participação nas aulas (20%), projecto (40%).
Pré-requisitos
Componente Laboratorial
Princípios Éticos
Componente de Programação e Computação
Componente de Competências Transversais
Bibliografia
Principal
Introduction to Reliable Distributed Programming
Rachid Guerraoui and Luís Rodrigues