Distributed Systems (CS 534)

2022 Fall
Faculty of Engineering and Natural Sciences
Computer Sci.& Eng.(CS)
Süha Orhun Mutluergil suha.mutluergil@sabanciuniv.edu,
Click here to view.
Doctoral, Master
Formal lecture,Laboratory
Click here to view.


This course covers topics in advanced operating systems and distributed systems such as naming, security, resource sharing, and remote execution, concurrency and distributed communication, fault-tolerance, availability, and persistence. The course will emphasize design principles of distributed systems, algorithms and data structures used, and evaluation methodologies.


The main objective of this course is to study the fundamentals of distributed systems. It focuses on the layer of software that needs to be built on top of computer networks to enable the development of distributed applications.


  • Explain what a distributed system is, why a computer system should be designed as a distributed system, and what the desired properties of such systems (transparency, scalability, openness) are.
  • List the principles underlying the functioning of distributed systems, identify the problems and challenges associated with these principles.
  • Explain properties of distributed algorithms.
  • Explain different software architectures used in distributed systems (e.g., client-server, multi-tier, peer-to-peer, structured, unstructured, object-based, data-centered)
  • Design and build distributed system software using both basic OS mechanisms (e.g., primitives for communication, multi-threading, concurrency etc.) and higher-level middleware services (e.g., RPC, RMI, message passing, queuing systems, etc.)
  • Develop distributed programs that communicate via remote method invocation (RMI) or equivalent communication technologies.
  • Explain the importance of efficient naming schemes in distributed systems
  • Identify possible synchronization problems in a distributed system and describe appropriate solutions to them
  • Describe how consistency and replication affect distributed system design, identify possible resulting problems and corresponding solutions
  • Explain what fault tolerance is, why it is needed in distributed systems,
  • Identify the security problems in distributed systems, list a set of security primitives that can be utilized in addressing security issues distributed systems such as access control, delegation, authentication, authorization


  Percentage (%)
Final 30
Midterm 25
Assignment 30
Group Project 15



Andrew S. Tanenbaum and Maarten van Steen. Distributed Systems: Principles and Paradigms, 2nd Edition, Prentice Hall, 2007, ISBN: 0-13-239227-5.


- Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. Operating Systems: Three Easy Pieces, 1.00 Edition, Published by CreateSpace Independent Publishing Platform, 2018, ISBN: 978-1985086593.
- Martin Kleppmann. Distributed Systems Lecture Notes. University of Cambridge.
- George Cloulouris, Jean Dollimore, and Tim Kindberg. Distributed Systems: Concepts and Design, 5th Edition, Pearson, 2011, ISBN: 978-0-13-214301-1.
- Sukumar Ghosh, Distributed Systems: An Algorithmic Approach, Second Edition, Chapman & Hall/CRC, Computer and Information Science Series, 2014, ISBN 978-1466552975.