Back to Main

Distributed Computing

Course Number: CS5320

 

Pre-requisite: Data Structures, Operating Systems

 

Course Outline: Introduction to distributed computing models; Clock synchronization; Message Ordering and Group Commuication; Termination Detection Algorithms; Reasoning with Knowledge; Distributed Mutual Exclusion Algorithms; Deadlock Detection Algorithms; Global Predicate Detection; Distributed Shared Memory; Checkpointing and Rollback Recovery; Consensus and Agreement; Failure Detectors; Distributed file servers; Distributed programming environments: Communication primitives, selected case studies.  (Note: Some topics may be added/deleted to suit specific offerings of the course)

The classes will cover theoretical aspects. The corresponding lab/projects will focus on the programming aspects of the course.

 

Textbooks and references:

1.  Sukumar Ghosh, Distributed Systems: An Algorithmic Approach, Second Edition

2. A.D. Kshemkalyani, M. Singhal, Distributed Computing: Principles, Algorithms, and Systems, ISBN: 9780521189842, Cambridge University Press, March 2011.

 

References:

- Gerard Tel. Introduction to Distributed Algorithms

- Nancy A. Lynch. Distributed Algorithms

- Hagit Attiya, Jennifer Welch. Distributed Computing: Fundamentals, Simulations, and Advanced Topics

- Vijay K. Garg. Elements of Distributed Computing

- G. F. Coulouris, J. Dollimore and T. Kindberg. Distributed Systems: Concepts and Design, 4th Ed, Addison-Wesley, 2005.

- Selected research papers.