Distributed systems

A.Y. 2016/2017
Lesson for
Overall hours
Learning objectives
The aim of this class is to present the basic distributed system technologies. The class discusses the main issues and design choices of a distributed system, the architectural principles, with a particular focus on interconnection networks, communication among processes, remote method invocation and remote procedure call mechanisms. In addition, basic methods and algorithms for controlling concurrency are introduced
· Definition, main characteristics, and architecture of a distributed system
· Communication, naming, synchronization, consistency, and replication protocols in distributed systems
· Fault tolerance solutions for distributed systems

Course structure and Syllabus

Active edition
Lessons: 48 hours
Professor: Foresti Sara
1. Introduction
definition of distributed system; goals (resource availability, distribution transparency, openness, scalability); types of distributed systems (computing systems, information systems, pervasive systems).
2. Architecture of distributed systems
system architectures (centralized, decentralized, hybrid); middleware approaches (interceptors, adaptive middleware); the feedback control model.
3. Processes
threads; virtualization; clients; servers; code migration.
4. Communication
basic concepts; Remote Procedure Call; Message Oriented Communication; Stream Oriented Communication; Multicast Communication.
5. Naming
basic concepts (name, identifier, address); flat, structured, and attribute-based naming systems.
6. Synchronization
clock synchronization (physical clocks, GPS); logical clocks (Lamport and Vector Clocks protocols); mutual exclusion (centralized, decentralized, distributed, token ring algorithms); global node positioning; election algorithms.
7. Consistency and Replication
data-centric models (continuous consistency, consistent ordering); client-centric models (eventual consistency, monotonic reads, monotonic writes, read your writes, writes follow reads); replica management; consistency protocols (continuous consistency, primary-based, replicated-write, cache coherence).
8. Fault tolerance
basic concepts (failure, redundancy); process resilience; reliable client-server communication; reliable group communication; distributed commit; recovery.
Lesson period
Second semester
Lesson period
Second semester
Assessment methods
Assessment result
voto verbalizzato in trentesimi