Fall 2009 - CS 553 (Call no 10696) Distributed Systems

Instructor: Ajay Kshemkalyani
Email: ajayk@cs.uic.edu
Class meeting times: M,W,F 11:00-11:50am
Room: BH208
Office Hours in 915 SEO: M 12:00 - 12:50pm, W 12:00 - 12:50pm

Resources

This course focuses on theoretical principles, but will have an implementation project.

Course Description

Topics

  1. Models: synchronous/asynchronous; shared memory/message-passing
  2. Global states and snapshots; time models
  3. Distributed graph algorithms
  4. Group communication (including multicast), managing group views
  5. State predicate detection
  6. Reasoning with knowledge
  7. Distributed mutual exclusion, distributed deadlock detection, leader election, termination detection
  8. Distributed shared memory - coherence, models, register constructions, atomic snapshots
  9. Checkpointing, rollback recovery; distributed debugging
  10. Agreement and consensus
  11. Failure detectors
  12. Self-stabilizing systems
  13. Peer-to-peer computing
  14. other current topics

Prerequisites

Algorithm analysis and design; or permission of the instructor.

Grading

The following is only a tentative breakup of the evaluation scheme and is subject to changes as the course progresses.

TENTATIVE course progress chart: Will be updated as we progress.


Auxiliary information

Literature sources: The following is an additional listing of traditional journals and conferences that you may find useful in your literature search for your term paper. Note that there are many more journals and conferences not listed here. All can be accessed online via the library UIC portal, i.e., from a campus IP address or after logging in to the library network using your UID account.

  1. IEEE Transactions on Parallel and Distributed systems (TPDS)
  2. IEEE Transactions on knowledge and data engineering (TKDE)
  3. Journal of Parallel and Distributed Computing (JPDC) - Elsevier
  4. Distributed Computing - Springer
  5. Journal of the ACM
  6. Journal of Algorithms - Elsevier
  7. SIAM Journal on Computing
  8. Ad-Hoc Networks - Elsevier
  9. ACM Symp. on Principles of Distributed Computing (PODC)
  10. IEEE Symp. on Parallel and Distributed Processing (SPDP)
  11. IEEE Network Computing and Applications Symposium (NCA)
  12. Inter. Conference on Distributed Computing Systems (ICDCS)
  13. Symoisum on DIstributed Computing (DISC)