Sistemas Distribuídos

Ano
3
Ano lectivo
2025-2026
Código
01000241
Área Científica
Informática
Língua de Ensino
Português
Modo de Ensino
Presencial
Duração
Semestral
Créditos ECTS
6.0
Tipo
Obrigatória
Nível
1º Ciclo - Licenciatura

Conhecimentos de Base Recomendados

Programação Orientada a Objetos, Sistemas Operativos, Redes de Computadores.

Métodos de Ensino

Nesta disciplina são lecionadas aulas teórico-práticas (TP) com exposição detalhada, recorrendo a meios audiovisuais, dos conceitos, princípios e técnicas fundamentais dos Sistemas Distribuídos, acompanhada de exemplos concebidos para despertar o interesse dos alunos pela teoria e que demonstrem a sua aplicação prática. Leciona-se também aulas práticas laboratoriais (PL) em que os alunos, com a orientação do docente, resolvem exercícios que exigem a conjugação de conceitos teóricos e promovem o raciocínio crítico face a questões mais complexas. As aulas práticas são ainda dedicadas a acompanhar os trabalhos práticos.

Resultados de Aprendizagem

A disciplina de Sistemas Distribuídos proporciona aos alunos uma abordagem abrangente sobre os algoritmos, protocolos e fundamentos dos sistemas distribuídos modernos, incluindo programação concorrente e computação paralela. Os alunos deverão ser capazes de demonstrar competências no desenvolvimento de aplicações distribuídas usando várias tecnologias. Deverão também compreender e interligar conhecimentos sobre técnicas fundamentais para o desenho de aplicações distribuídas em ambiente organizacional e para a Internet. A disciplina pretende promover a aquisição de competências em análise e síntese, conhecimentos de informática relativos ao âmbito dos sistemas distribuídos e paralelos, competência para resolver problemas, competência em aprendizagem autónoma e competência em aplicar na prática os conhecimentos.

Estágio(s)

Não

Programa

Introdução aos sistemas distribuídos, motivação e desafios, modelos arquiteturais e middleware.

Camadas de serviços, hardware, sistema operativo, middleware e aplicações.

Concorrência, organização de um computador, processos, threads e sincronização.

Computação paralela, aprendizagem computacional paralela, e lei de Amdahl.

Chamada remota de procedimentos, semânticas de invocação e protocolos pedido-resposta.

Comunicação indireta, sistemas publish-subscribe e message-oriented middleware.

Aplicações distribuídas para a Internet, programação para a Web e serviços REST.

Replicação primário-secundário e replicação ativa, soluções de alta disponibilidade.

Tempo em sistemas distribuídos, sincronização de relógios físicos e lógicos.

Coordenação e consenso distribuído, multicast fiável, ordenamento causal e total.

Transações distribuídas e confirmação atómica.

Nomes e serviços de nomes.

Sistemas peer-to-peer e a cadeia de blocos.

Métodos de Avaliação

Avaliação
Projecto: 40.0%
Exame: 60.0%

Bibliografia

 Principal | Required:

 

- Distributed Systems: Concepts and Design, 5th edition, G. Coulouris, J. Dollimore, T. Kindberg, G. Blair, ISBN 0-13-214301-1, Pearson Education, 2011.

 

Secundária | Supplemental:

 

- Operating System Concepts, 10th edition, A. Silberschatz, P. B. Galvin, G. Gagne, ISBN 978-1119454083, Wiley, 2019.

 

- Distributed Systems, 4th edition, M. van Steen, A. S. Tanenbaun, ISBN 978-90-815406-3-6, 2023.