Distributed Systems


Dr. Janibul Bashir

Course Overview

In this course, we intend to teach the fundamentals of a distributed systems. We will understand the core features and issues associated with distributed systems, and different mechanisms to handle these issues.

Course Code




Text Book: Distributed Systems: Principles and Paradigms (Andrew S. Tanenbaum and Martin V. Steen) 2nd Edition

Video Lectures: Distributed Systems

Semester Project:

Choose a distributed system (e.g., blockchain, Bittorrent, MapReduce, HDFS, Google BigTable, Spark etc) of your choice and implement it.

Checkpoint 1: Explain the architecture, features, and usefulness of the distributed system that you have chosen. Submit a pdf document of the same. (Deadline 15th April) -- Deadline extended to 19 April 2021.

Checkpoint 2: In your chosen distributed system (in checkpoint 1), explain how they have used clock syncronization (if it is not given, explain how clock is useful in your chosen system). Explain the usefulness of mutual exclusion and leadership in your chosen distributed system.(Deadline 1st June).

Course Content

  • Lecture #1 (7 April 2021): Introduction to distributed systems, Need of a distributed system, Difference with multiprocessor systems.

  • Lecture #2 (9 April 2021): Distributed systems goals (Availability, transparency, openness, and scalability).

  • Lecture #3 (12 April 2021): Core issues in distributed systems ( issues related to concurrency, latency, and partial failures).

  • Lecture #4 (13 April 2021): Network and system failures in distributed systems.

  • Lecture #5 (Part 1) (15 April 2021): Logical Architectures of distributed systems.

  • Lecture #5 (Part 2) (16 April 2021): System Architectures of distributed systems.

  • Lecture #6 (19 April 2021): Need of synchronization in a distributed system.

  • Lecture #7 (21 April 2021): Methods for synchronizing physical clocks (Cristians algorithm, Berkeley Algorithm, NTP).

  • Lecture #8 (23 April 2021): Logical clocks and Vector clocks.

  • Lecture #9 (26 April 2021): Mutual exclusion algorithms.

  • Lecture #10 (28 April 2021): Election Algorithms.

  • Lecture #11 (17 May 2021): Distributed system security.

  • Lecture #11 (20 May 2021): Cryptography for confidentiality and key distribution.