Poonam Sharma >>Recommended Books/Links

~~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. 
4. Text/References

• 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%