This course covers advanced distributed operating system algorithms and theory. Topics such as distributed mutual exclusion, distributed event ordering, distributed deadlock detection/avoidance, agreement protocols, consistent global snapshot collection, stable predicate detection, failure recovery, fault-tolerant consensus, leader election, process groups and group communication. Case studies of distributed operating systems such as LOCUS, Grapevine, V System, ISIS, Amoeba, Sprite, and Mach will be used as illustrations of the above algorithms.
CS 570 or consent of instructor.
CS 670 is intended to be an advanced graduate-level course in distributed systems. Students should have had a graduate course in operating systems, (equivalent to CS 570) covering distributed operating systems, multiprocessor operating systems, database operating systems and security issues in distributed system.
Students will learn about distributed systems design and implementation. They will be exposed to various areas of research in distributed systems and mobile computing systems. They will learn about designing and implementing fault tolerant distributed systems. A student completing this course successfully will be able to pursue independent research in distributed systems.
Week by Week Course Outline:
This is a sample outline. Exact outline will be determined by the instructor offering this course.
|2-3||Synchronization, distributed mutual exclusion|
|5||Consistent global snapshot collection|
|7||Failure recovery in distributed systems|
|10-11||Leader election algorithms, Agreement Protocols|
|12-13||Process Groups and group communication|
|14-15||Experimental distributed operating systems|
Exact details about examinations in this course will be determined by the instructor offering the course. Typically there will be one in-class, midterm examination during the semester and a two-hour final examination. Specific details will be made available in the syllabus at the start of each semester in which the course is offered.
A student's grade will be determined by a weighted average of homework assignments, programming exercises, projects, hour examinations, and the final examination. The faculty offering the course will make the details available at the start of the course. A typical weighting is:
Final Examination: 35%
Nancy A. Lynch
Hagit Attiya and Jennifer Welch
Distributed Computing Fundamentals, Simulations and Advanced Topics
Vijay K. Garg
Principles of Distributed Systems
Kluwer Academic Publishers
Mukesh Singhal and Niranjan G. Shivaratri
Advanced Concepts in Operating Systems
McGraw Hill, 1994
Papers from the literature