|Course title:||Distributed Systems|
|Type of course:||Elective|
|Level of course:||Postgraduate|
|Course email address:|
|Office:||215 (White Building 1st floor)|
|Office hours:||Monday 13:00 - 15:00|
|Telephone number:||+30 2810 39 - 3549(CSD), 1727(ICS-FORTH)|
|Office hours:||Wednesday 10:00 - 11:00|
|Telephone number:||+30 2810 391880|
Class InformationLectures: 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)
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.
- Understanding the principles underlying the functioning of distributed systems
- Realizing the challenges encountered during the design and analysis of a distributed system
- Identifying efficient methods for facing these challenges and designing efficient distributed algorithms and systems
- Learning how to design, implement and evaluate correct distributed algorithms
- Identifying the desired properties that should govern the design of distributed systems
- Understanding how to design well-structured such distributed systems that exhibit the desirable properties
- Being able to identify features and design decisions that may cause problems, as well as others that cannot be realized by any correct distributed system implementation
|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.
- George Coulouris, Jean Dollimore and Tim Kindberg, "Distributed systems: Concepts and Designs", Addisson-Wesley, fourth edition, 2005.
- Andrew Tanenbaum and Maarten van Steen, "Distributed Systems, Principles and Paradigms".
- N. Lynch, "Distributed Algorithms", Morgan Kaufmann, 1996
- H. Attiya & J. Welch, "Distributed Computing: Fundamentals, Simulations and Advanced Topics", Morgan Kaufmann, 1998
- E. Simon, "Distributed Information Systems", Mc Graw Hill, 1996
- S. Mullender , "Distributed Systems", Second Edition, Addison-Wesley, ACM Press Frontier Series, 1993
- A. Goscinski, "Distributed Operating Systems, The Logical Design", Addison-Wesley, 1991
- M.T. Ozsu, P. Valduriez, "Principles of Distributed Database Systems", Prentice Hall, 1991