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.