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

Course Objective

A distributed system is a network of processes collectively performing a meaningful job or providing a service to the users. Such systems are being increasing relevant to our lives and our society. How processes communicate and interact with one another, how to guarantee correctness and build tolerances to various kinds of failures or dynamic behaviors, how to design distributed algorithms for specific problems, manage replicas and provide group communication services are up for discussion. This course will deal with the theory and algorithms related to distributed systems, and not programming aspects.

Week 3 notes (9/05-9/09)
(Chapter 6)
Time in a distributed system --
Physical clocks, logical clocks, sequential and concurrent events.
Read papers 1 and 5 from the on-line resources. These are the original sources.