CS 603 - Advanced Topics in Distributed Systems - (Park, Spring '97)
Syllabus
Lecture Notes
- Introduction (centralized vs. decentralized design).
- Networking overview and client/server design.
- Group communication (total/causally ordered multicast).
- Physical/logical clocks and their application.
- Mutual exclusion.
- Leader election and fault models (transient/permanent).
- Distributed transactions.
- Concurrency control (locking, optimistic, time-stamp).
- Distributed deadlock detection/prevention.
- Theoretical aspects of consensus problems (some impossibility results).
- Advanced fault models and their relations (worst-case, k-sparse,
Byzantine).
- Fault-tolerant distributed computing (space/time/information
redundancy, hierarchical, resiliency).
- Load balancing (static/dynamic optimization, on-line algorithms
and competitive ratio, process migration, implementation mechanics).
- Noncooperative vs. cooperative resource allocation algorithms
(system/Pareto optimality, Nash equilibria, computational markets).
- Distributed scheduling (optimality/fairness, quality of service).
- Real-time scheduling (RMA, EDF, WFQ, Solaris implementation issues).
- Name resolution, access patterns, and optimal name server construction.
- Distributed caching (cache consistency, replica management).
- Distributed file systems (file system properties, optimal file
allocation, heavy-tailed file size distributions and
aggregate behavior).
- Distributed shared memory (sequential, causal, PRAM, weak, release,
and entry consistency; implementations and performance).
- Future trends.
Homework Assignments
Exams
On Reserve at MATH Library
- Text Books and References
- Distributed Operating Systems. Tanenbaum.
- Distributed Algorithms. Lynch.
- Internetworking with TCP/IP, Vol. III. Comer & Stevens.
- UNIX Network Programming. Stevens.
- Advanced Programming in the UNIX Environment. Stevens.
- Reading Material
- Homework Solutions