General Information


Course title: Distributed Systems
Cource code: CS556
Type of course: Elective
Level of course: Postgraduate
Course email address:


Name: Panagiota Fatourou
Office: 215 (White Building 1st floor)
Office hours: Monday 13:00 - 15:00
Telephone number: +30 2810 39 - 3549(CSD), 1727(ICS-FORTH)
Email address:


Name: Eleftherios Kosmas
Office: 1.12a (ICS-FORTH)
Office hours: Wednesday 10:00 - 11:00
Telephone number: +30 2810 391880
Email address:

Class Information

Lectures: Monday, 11:00-13:00, class RA201. Wednesday, 11:00-13:00, class RA201.

Tutorial: Friday, 11:00-13:00, class RA201. (not all Fridays, notification will be sent by e-mail)

Course Summary

Most modern systems and applications are distributed for a variety of reasons, including resource sharing, fault-tolerance, performance, etc. Distributed algorithms have arisen in a wide spectrum of applications, including telecommunications, distributed information processing, scientific computing, real time process control, etc. Global information systems, telephone networks, banking applications, reservation systems, weather prediction, aircraft and nuclear power plant control, sensor networks, and many others, employ distributed computations and depend critically on the use of distributed algorithms, which should therefore be correct and efficient.

This course aims at providing students with a deep understanding of distributed systems. In particular it studies the principles, techniques, and practices relevant to the design and implementation of such systems.

This class is geared toward graduate students at all levels as well as advanced undergraduates.

Major objectives


Week Subject
1st Introduction: Definition of a distributed system, Resources, Resource sharing, Challenges, Hardware Concepts, Client-Server: An example
2nd Processes: Threads, Processes, Inter-process communication, Clients, Servers
3rd System Model: Architectural models, Software layers, Design requirements, Interaction model, Formal model for message-passing systems, Performance, Computer Clocks and Timing, Failures
4th Communication: Layered Protocols, Remote Procedure Call, Remote Object Invocation, Message-oriented communication
5th Naming: Naming entities, locating mobile entities, Removing unreferenced entities
6th Basic Asynchronous Network Algorithms: Simple broadcast and converge-cast protocols, Leader Election in a Ring, Leader Election in an arbitrary network, Spanning Tree Construction, Breadth-first search and shortest paths, Minimum spanning trees
7th The Consensus problem - Fault tolerance: Solving consensus in synchronous networks$
8th Logical Time: Capturing causality, Examples of using causality, Logical time and logical clocks, Vector Clocks, Clock synchronization, Applications
9th Network Resource Allocation: Mutual Exclusion, General Resource Allocation
10th Global Snapshots and Stable Properties: Consistent global snapshots, Termination-detection
11th Consistency and Replication: Consistency models, Distribution protocols, Consistency protocols
12th P2P Systems: Chord, CAN, Discussion of unstructured P2P systems
13th Transactions and Concurrency Control: Transactions, Optimistic concurrency control, timestamp ordering, Distributed Transactions, At$

Language of instruction

Language of instruction is ordinarily Greek; however, lectures are given in English when foreign students attend the course.

Assignments and Marking

This course will involve (1) a project, (2) the presentation of a paper by each student into class (and leadership of the class discussion on the paper), and (3) a final exam.

During the presentations session, students should actively participate in class discussions. For each presented paper, the contribution of the paper will be studied and placed in the context of previous literature, the methodology used will be criticized and the evaluation will be presented.

Students will be required to undertake either a theoretical project or a project which will involve some programming. Students may propose their own topic for the project.

The final grade will be calculated using the following co-efficients:

Paper presentation: 25%

Final Project: 35%

Final Exam: 40%

Students are obliged to attend the course. Maximum number of absences: 3.

Course Emailing-list & Electronic Account

The course uses an emailing list for the efficient communication of the instructor and the TAs with the students. Subscription to the emailing list is performed by sending an email to the following address:

with empty subject and the following line as the email body:

Students are obliged to subscribe to the emailing list by the March 5, 2010. The address of the emailing list is:

All emails sent to this address will be forwarded to all members (students, instructor, TAs) of the list. It is a strong recommendation to the students to read email regularly (e.g., once a day).

The address of the electronic account of the course is the following:

Students may send any questions concerning the course to this address.


Successful completion of CS345 (Operating Systems) is a prerequisite of this course.

Related Bibliography

Previous Years