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.