22C:166 Distributed Systems and Algorithms

(Fall 2009) 10:55AM-12:10PM Tuesdays and Thursdays, Room 201 CEF. This course (22C:166 EXW) is also being offered via the World Wide Web.


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

Announcements, Prerequisites, Handouts, 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. 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 and various dynamic behaviors.

Teaching Assistant

Andrew Berns. adberns@cs.uiowa.edu, 201N Maclean Hall, 319-353-2547
Office hours: Mondays 2:30-4:00 PM, and Wednesdays 2:00-3:30 PM.

Course Outline

Course policies are governed by the College of Liberal Arts.

Handouts

Homework and Exams

Five homeworks worth 30% of the final grade. Two midterm exams and a final worth 70% of the grade. The midterm examinations will be scheduled in the evening. All students taking this course, including those taking it via the World Wide Web, are required to be on campus for taking the examinations. Assignments will be posted on ICON , and students will submit their work through ICON. Students taking this course via the World Widde Web are encouraged to communicate via email - send questions about grades to the TA (with a copy to the instructor) and clarifications of lectures /course materials to the Instructor (with a copy to the TA)

Tentative scale for letter grades
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 25, 2009
Lecture 1. Introduction to Distributed Systems
Read Chapter 1 and 2. Refresh your background
August 27, 2009
Lecture 2. What good are models? Understanding models and model transformation
Read Chapter 3
September 1, 2009
Lecture 3. Representing distributed computation. Understanding non-determinism, atomicity, and fairness.
Read Chapter 4.
September 3, 2009
Lecture 4. Program correctness: Liveness and safety properties.
Read Chapter 5.
September 8, 2009
Lecture 5. Sequential and concurrent events. Understanding logical and vector clocks.
Read Chapter 6.
September 10, 2009
Lecture 6. Physical clock synchronization. Introduction to Distributed Mutual Exclusion
HOMEWORK 1 ASSIGNED
Start reading Chapter 7.
September 15, 2009
Lecture 7. Distributed Mutual Exclusion
Continue reading Chapter 7.
September 17, 2009
Lecture 8. Distributed Mutual Exclusion (concluding part). Introduction to Distributed Snapshot
No class today. Listen to the prerecorded lecture on ICON.
Office hours canceled. I will be out of town.
HOMEWORK 2 ASSIGNED.
Start reading Chapter 8.
September 22, 2009
Lecture 9. Distributed snapshot (continued)
Read Chapter 8.
September 24, 2009
Lecture 10. Global state collection. Termination detection.
Read Chapter 9.
September 29, 2009
Exam review:
Sample study questions to be discussed in class
A CORRECTION
October 1, 2009
Lecture 11. Distributed deadlock
End of Chapter 9.
October 6, 2009
Lecture 12. Graph algorithms: Routing
Read Chapter 10.
October 8, 2009
Lecture 13. Compact Routing, spanning tree, MST
Read Chapter 10.
October 13, 2009
Lecture 14. Minimum Spanning Tree construction
Read Chapter 10.
October 15, 2009
Lecture 15. Leader election, synchronizers
Read Chapter 11.
HOMEWORK 3 ASSIGNED
October 20, 2009
Lecture 16. Faults and Fault-tolerance
Read Chapter 12.
October 22, 2009
Lecture 17. Fault and Fault-tolerance (continued)
Read Chapter 12.
October 27, 2009
Lecture 18. Distributed Consensus in Asynchronous Systems: FLP Impossibility result
Read Chapter 13.
October 29, 2009
Lecture 19. Distributed Consensus in Synchronous Systems: Byzantine Generals Problem
Read Chapter 13.
HOMEWORK 4 ASSIGNED
November 3, 2009
Lecture 20. Byzantine Generals Problem (continued), Introduction to Failure detectors
Read Chapter 13.
No class today. Listen to the prerecorded lecture on ICON.
Office hours canceled. I will be out of the country.
November 5, 2009
Lecture 21. Failure Detectors (continued)
Read Chapter 13.
No class today. Listen to the prerecorded lecture on ICON.
Office hours canceled. I will be out of the country.
November 10, 2009
Lecture 22. Group Communication
I plan to spend the first 15 minutes of the class period to answer any questions that you may have regarding the previous two lectures. The topics are not easy, and I encourage you to ask questions. I will spend a part of the next class period (i.e. November 12) to review for Exam 2.
Read Chapter 15.
November 12, 2009
Review for Exam 2
November 17, 2009
Lecture 23. Group Communication
This is a continuation of November 10's lecture.
November 19, 2009
Lecture 24. Group Communication
Read Chapter 15.
Note the updated room number for Exam 3.