Planeamento

Aulas Teóricas

Introdução. Modelos de faltas, Modelos de Síncronia. RPC e Garantias do RPC. Serviços de Nomes (DNS)

Pequena antevisão do conteúdo do curso. Chamada a procedimentos remotos. Que garantias posso ter e como as obter. Ilustração de algumas técnicas básicas usando o serviço de nomes como exemplo.

Relógios Físicos e Relógios Lógicos (relógios de Lamport e Relógios Vectoriais)

Sincronização de relógios em sistemas distribuídos. Relógios lógicos de Lamport. Relógios vectoriais.

Exclusão Mútua e Salvaguarda Distribuída

Algoritmo de Ricart and Agrawala e o algoritmo de Maekawa. Corte coerente. Algoritmo de Chandy-Lamport

Eleição de Líder.

Eleição de líder. Eleição de líder num anel. O algoritmo do Bully e uma versão modular do mesmo.

Registos e Espaços de Tuplos

Memória partilhada. Semântica dos registos. Concretização distribuída do espaço de tuplos. 

Propagação Epidémica e Coerência Fraca

Usando difusão epidémica para propagar actualizações num sistema replicado. Como impedir que um cliente observe versões incorentes dos dados.

Replicação: Primário Secundário, Replicação Máquina de Estados, Sincronia na Vista

Tolerância a faltas. Replicação. Primitivas para gerir a replicação.

Consenso e Problemas Relacionados

O problema do consenso. Uma solução para sistemas síncronos. Como podemos usar o consenso para resolver outros problemas relacionados.

Consenso vs Replicação

Qual a relação entre replicação e o problema do consenso.

Transações e Confirmação Atómica Distribuída

Introdução às transacções distribuídas. O problema da confirmação atómica.

Mecanismos de Segurança

Princípios básicos da criptografia.

Canais Seguros

Criação de um canal seguro em sistemas distribuídos.