Disciplina

Á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

2006

ISBN-10 3-540-28845-7