This course provides an introduction to the fundamentals of distributed computer systems, assuming the availability of facilities for data transmission. The structure of distributed systems using multiple levels of software is emphasized.
CS 454 is a course for CS major students and is normally completed in the fourth year.
Prerequisites: CS 350 or SE 350; Computer Science students only. CS 456 is not a prerequisite, but it is useful to be familiar with the information it provides about the underlying facilities assumed in this course.
Distributed Systems - Principles and Paradigms,2nd Edition, by A.S. Tanenbaum and M. van Steen, Prentice Hall, 2002. (Required)
Distributed Systems - Concepts and Design, 4rd ed., G. Coulouris, J. Dollimore, and T. Kindberg, Addison Wesley, 2001.(Optional)
3 hours of lectures per week. Normally available in Fall, Winter, and Spring.
Clock synchronization, partial order of events, election algorithms, agreement algorithms, distributed shared memory, process synchronization.
Naming and name resolution; name, directory, and file servers; caching.
Locking and concurrency control, deadlock handling, stable storage, two-phase commit.
Encryption, public and private keys, authentication, privacy.
File transfer, electronic mail, World-Wide Web.
Some of: Mach, Amoeba, OSF DCE, CORBA, DCOM.

David R. Cheriton School of Computer Science
University of Waterloo
Waterloo, Ontario, Canada N2L 3G1
Tel: 519-888-4567 x33293
Fax: 519-885-1208
Contact | Feedback: cs-uops@cs.uwaterloo.ca | David R. Cheriton School of Computer Science | Faculty of Mathematics