~~CSL519 : Distributed Systems
1. Course Description
The study of basic techniques in the design and development of Distributed Systems and understanding solutions of the fundamental problems in distributed systems like mutual exclusion, deadlock detection, termination detection, leader election, fault tolerance, etc.
3 lectures per week. Credit scheme - (L-T-P-C: 3-0-2-8)
2. Required Background or Pre-requisite: Operating Systems Course
3. Detailed Description of the Course
• Introduction and motivation to Distributed Systems,Characteristics, Applications, Challenges, Architecture types, Fundamental models. (2 weeks)
• Inter-process and inter-node communication using Sockets – connection oriented and connection-less, Remote Procedure Calls, Remote Method Invocation (1 week)
• Distributed File System Design and Implementation, Case Studies of NFS, Andrew File Systems, HDFS, Distributed Resource Management. (1 week)
• Clock Synchronization Techniques, Network Time Protocol, Logical Clocks, Vector Clocks. (1 week)
• Causally Ordered Broadcast and Unicast, Termination Detection – Ring based and Dijkstra Scholten algorithms, Leader Election – Ring based, Franklin’s algorithm and Bully Algorithm (2 weeks)
• Distributed Mutual Exclusion – Token based algorithms – Lamport’s, Ricart-Agarwala, Maekawa’s algorithms, Non Token based Algorithms – Suzuki Kasami, Raymond’s algorithms, comparison of different algorithms. (2 weeks)
• Distributed Deadlock Detection, Resource and Communication Deadlocks – Centralized technique, Distributed technique – edge chasing and path pushing algorithms, Hierarchical technique, Recovery from Deadlocks. (1 week)
• Fault Tolerance, Handling Crash faults –Two phase commit protocol, Non-blocking three phase commit protocol, Birman-Joseph Atomic Broadcast Protocol, Voting techniques for fault tolerance. (2 weeks)
• Recovery – forward and backward recovery, undo-redo logs, Coordinated and Uncoordinated Checkpointing and Recovery algos (1 week)
• Agreement protocols – LSP Oral Messages, Agreement using Signed Messages (1 week)
Typical Laboratory Experiments
Socket Programming, RPC, Using Sockets to implement a rudimentary Distributed File System, Implementation and Performance Evaluation of any Distributed Mutual Exclucion algorithm.
• Singhal and Shivratri, “Advanced concepts in Operating Systems”, McGraw Hill
• Coulouris, “Distributed Systems”, AWL Press. Pearson Education
• Tanenbaum, “Modern Operating Systems”, PHI
5. Class/Laboratory Schedule
Lectures : 3 1-hr lectures per week Lab: One 2 hr session per week
6. Course Objective
Given the knowledge of operating systems and sequential program design, the students of the second semester M. Tech. CSE will be able to design and develop fault tolerant and efficient distributed algorithms to solve large problems where data and control is distributed over different nodes.
7. Course Outcomes
1. Identify the advantages and challenges in designing distributed algorithms for different primitives like mutual exclusion, deadlock detection, agreement, etc.
2. Design and develop distributed programs using sockets and RPC/RMI.
3. Differentiate between different types of faults and fault handling techniques in order to implement fault tolerant systems.
4. Analyze different algorithms and techniques for the design and development of distributed systems subject to specific design and performance constraints.
8. Contribution of Course to Professional Component
Lectures: Students learn about the design and development of distributed systems. They are able to understand the various primitives used in implementing distributed systems and can analyze different algorithms for their implementation.
Lab: Students learn to implement distributed programs using sockets and RPC/RMI. They understand the issues about scalability by doing performance evaluation of their experiments.
9. Evaluation of Students
The instructor uses the following methods: 2 sessional exams, end-semester exam, a course project, one-on-one discussions during office hours, laboratory experiments and programming assignments.
10. Relationship of Course Objectives to Program outcomes
The coorelation of the COs of the course Distributed Systems and the POs are shown in the following table. A ‘H’, ‘M’, or ‘L’ mark on a cell indicates whether a CO has a ‘high’, ‘medium’, or ‘low’ correlation with the corresponding PO on the coloumn. A blank cell inidicates that there is no correlation between a CO to a particular PO.
Correlation of COs with POs of the Distributed Systems course
PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12
CO1 20 20 20 15 15 05 05
CO2 20 20 10 20 20 10
CO3 40 40 20
CO4 15 15 15 15 15 12 13
11. Assessment of Attainment of Course Outcomes
Assessment Type Course Outcomes
CO1 CO2 CO3 CO4
Final Exam 20% 10% 40% 30%
Programming Assignments 50% 50%
Mid Sem Exams 40% 10% 20% 30%