Distributed Systems
3
2025-2026
01000241
Informatics
Portuguese
Face-to-face
SEMESTRIAL
6.0
Compulsory
1st Cycle Studies
Recommended Prerequisites
Object-Oriented Programming, Operating Systems, Computer Networks.
Teaching Methods
This course includes theoretical-practical (TP) lectures with detailed exposition, using visual aids, of concepts, principles and fundamental techniques of Distributed Systems, accompanied by examples designed to increase students' interest in theoretical concepts and demonstrate their practical application. The course also includes practical (PL) classes in which students, with the guidance of the teacher, solve exercises that require combining theoretical concepts and promote critical thinking with respect to more complex problems. The practical classes are also dedicated to supporting the practical projects.
Learning Outcomes
The Distributed Systems course provides students with a comprehensive approach to the algorithms, protocols and fundamentals of modern distributed systems, including concurrent programming and parallel computing. Students shall be able to demonstrate skills in developing distributed applications using various technologies. They must also understand and combine knowledge about fundamental techniques for designing distributed applications in an organizational environment and for the Internet. The course aims to promote the acquisition of skills in analysis and synthesis, computer knowledge related to the scope of distributed and parallel systems, competence in solving problems, competence in autonomous learning and competence in applying knowledge in practice.
Work Placement(s)
NoSyllabus
Introduction to distributed systems, motivation and challenges, architectural models and middleware.
Layers of services, hardware, operating system, middleware and applications.
Concurrency, computer organization, processes, threads and synchronization.
Parallel computing, parallel machine learning, and Amdahl's law.
Remote procedure call, invocation semantics and request-response protocols.
Indirect communication, publish-subscribe systems and message-oriented middleware.
Distributed applications for the Internet, Web programming and RESTful Web services.
Primary-secondary replication and active replication, high availability solutions.
Time in distributed systems, synchronization of physical and logical clocks.
Distributed coordination and consensus, reliable multicast, causal and total ordering.
Distributed transactions and atomic commit.
Names and naming services.
Peer-to-peer systems and the blockchain.
Assessment Methods
Assessment
Project: 40.0%
Exam: 60.0%
Bibliography
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.