22C:166 Distributed Systems and Algorithms

9:30-10:45 Tuesdays and Thursdays, Room 217 MLH


Instructor: Sukumar Ghosh
201P MLH, ghosh@cs.uiowa.edu, 319-335-0738
Office Hours: 1:00-2:30 PM Tuesdays and Thursdays.

Announcements, Prerequisites, Homework and Exams, Lecture Notes, On-line resources,


Textbook


Sukumar Ghosh: Distributed Systems: An Algorithmic Approach, 2006 CRC Press (ISBN 158488564) Table of contents


In addition to the textbook, we will use the following books as references:

1. Gerard Tel , "Introduction to Distributed Algorithms," Cambridge University Press 2000
2. George Coulouris, Jean Dollimore, Tim Kindberg , "Distributed Systems: Concepts and Design (4th Edition)," Addison Wesley/Pearson 2005
3. Andrew Tannenbaum, Maarten van Steen , "Distributed Systems: Principles and Paradigms," Prentice Hall (2nd edition) 2006.

The reference books will be on reserve in the Mathematical Sciences Library from the second week of the course.

Prerequisites

Some knowledge of Operating Systems and/or Networking, Algorithms, and interest in Distributed Computing. This is not a programming course. Our goal is to learn and analyze why and how distributed systems work, why some of them fail, and how to tolerate failures.

Teaching Assistant

Wenli He, 101N MLH, 319-335-2839, wenli-he@uiowa.edu
Office hours: 9:00-10:15 AM Wednesdays and 8:00-9:15 AM Fridays

Course Outline

Course policies are governed by the College of Liberal Arts.

Homework and Exams

Six homeworks worth 35% of the final grades. Two midterms and a final exmaination worth 65% of the grades.

Letter grade distribution
A+ = 95-100     B+ = 80-84     C+ = 65-69     D+ = 50-54    F = 0-39
A  = 90-94      B  = 75-79     C  = 60-64     D  = 45-49
A- = 85-89      B- = 70-74     C- = 55-59     D- = 40-44

The instructor reserves the right to make minor modifications in the above grading scale.

Lecture Notes

August 28, 2007
Lecture 1. Introduction to Distributed Systems
Read Chapter 1 and 2. Refresh your background
August 30, 2007
Lecture 2. What good are models? Understanding models and model transformation
Read Chapter 3.
September 4, 2007
Lecture 3. Representing distributed computation. Understanding non-determinism, atomicity, and fairness.
Read Chapter 4.
September 6, 2007
Lecture 4. Liveness and safety properties. Arguing about program correctness.
Read Chapter 5.
September 11, 2007
Lecture 5. Sequential and concurrent events. Understanding logical clocks and vector clocks.
Read Chapter 6.
September 13, 2007
Lecture 6. Physical clock synchronization. Introduction to distributed mutual exclusion.
Start reading Chapter 7.
September 18, 2007
Lecture 7. Distributed Mutual Exclusion
Continue reading Chapter 7.
September 20, 2007
Lecture 8. Distributed Mutual Exclusion (continued). Introduction to distributed snapshot
Start reading Chapter 8.
September 25, 2007
Lecture 9. Distributed snapshot.
Read Chapter 8.
September 27, 2007
Lecture 10. Global state collection. Termination detection.
Read Chapter 9.
October 2, 2007
Lecture 11. Deadlock detection (Chapter 9) Introduction to Routing (Chapter 10).
October 4, 2007
Lecture 12. Routing
Read Chapter 10.
October 9, 2007
Lecture 13. Interval routing, Prefix routing, graph traversal
Use the slides of October 4, 2007
Read Chapter 10.
October 16, 2007
Lecture 14. Minimum spanning tree construction
Read Chapter 10.
October 18, 2007
Lecture 15. Leader election, synchronizers
Read Chapter 11.
October 23, 2007
Lecture 16. Fault and Fault-tolerance
Read Chapter 12.
October 25, 2007
Lecture 17. Fault and Fault-tolerance
Read Chapter 12.
November 1, 2007
Lecture 18. Sliding window protocols. Introduction to distributed consensus.
Read Chapter 13.
November 6, 2007
Lecture 19. Distributed consensus in asynchronous systems: FLP impossibility result. Introduction to Byzantine Generals Problem.
Read Chapter 13.
November 8, 2007
Lecture 20. Byzantine Generals Problem (continued).
Read Chapter 13.
November 13, 2007
Lecture 21. Review.
November 27, 2007
Lecture 22. Failure detectors
Read Chapter 13.
November 29, 2007
Lecture 23. Group Communication
Read Chapter 15.
December 4, 2007
Lecture 24. Group Communication
Read Chapter 15.
December 5, 2007
Lecture 25. Replication
Read Chapter 16.
December 11, 2007
Lecture 26. Replication
Read Chapter 16.
December 13, 2007
Wrap-up and review

Announcements

On-line resources