General Information

General

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

Instructor

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

TA

Name: Eleftherios Kosmas
Office: 1.12a (ICS-FORTH)
Office hours: Thursday: 11:00 - 13: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.

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

Program

Week Subject
1st Introduction: Definition of a distributed system, Resources, Resource sharing, Challenges, Hardware Concepts, Client-Server: An example
2nd System Model: Architectural models, Software layers, Design requirements, Interaction model, Formal model for message-passing systems, Performance, Computer Clocks and Timing, Failures
3rd Communication: Layered Protocols, Remote Procedure Call, Remote Object Invocation, Message-oriented communication
4th Processes: Threads, Processes, Inter-process communication, Clients, Servers, Code migration, Software agents
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 Shared Memory versus Networks: Transformations from the shared memory model to the network model and vice versa, Distributed shared memory
8th Logical Time: Capturing causality, Examples of using causality, Logical time and logical clocks, Vector Clocks, Clock synchronization, Applications
9th The Consensus problem - Fault tolerance: Solving consensus in synchronous networks, Impossibility of solving consensus in asynchronous networks
10th Global Snapshots and Stable Properties: Consistent global snapshots, Termination-detection
11th Network Resource Allocation: Mutual Exclusion, General Resource Allocation
12th Transactions and Concurrency Control: Transactions, Optimistic concurrency control, timestamp ordering, Distributed Transactions, Atomic commit protocols, distributed deadlocks
13th Consistency and Replication: Consistency models, Distribution protocols, Consistency protocols
14th P2P Systems: Chord, CAN, Discussion of unstructured P2P systems

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 a project which will involve some programming. Students may propose their own topic for the project or they may ask the instructor to propose a project for them. Finally, the students will undertake a final exam.

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.

Prerequisities

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

Related Bibliography

Previous Years