CSC495/591J Distributed Systems

Though distributed systems have been around more than 20 years, it is only now that the discipline gets its deserved attention and popularity. The widespread use of Internet and World-Wide Web technologies made distributed systems a necessity of our everyday life. For example, whenever you access a data file in your personal directory from a workstation or search information in the Web, it is more than likely that you are running a distributed system.

The primary objective of this course is to examine the state of the art and practice in distributed computing and to provide students hands-on experience in developing distributed protocols. This course deals with the fundamental principles in building distributed applications including, but not limited to,

o Interprocess Communication (message passing,shared memory)
-- Message Passing (TCP/IP socket programming)
-- Shared Memory (threads)
-- Remote Procedure Calls (RPC)
-- Group Communications (ISIS)

o Synchronization
-- Clock synchronization
-- Mutual Exclusion
-- Resource Allocation
-- Distributed Agreement
-- Deadlock Handling

o Client/Server Model
-- File Systems
-- NFS (stateless)
-- AFS (stateful)

o Distributed Objects (CORBA)

o Security and Authentication
-- DES
-- Kerberos

o Fault Tolerance, Recovery and Replication

Late Homework Policy

OK, folks -- change of plan. I decided to go a little lenient on late homework. I can grant you one HW being late at most ONE WEEK for free of charge. You have to pick which one you would like to turn in late and not to be penalized for it (let's call this HW a *free* HW). You can have _at most one_ free HW during the course period. The normal deduction rule applies to any other late work: 5% of the late homework score will be deducted for each day being late. The same deduction rule applies to the free homework being late more than one week in which case 5% times the homework score times (the number of days being late after the due day -7) will be deducted. I will not take any work being late more than two weeks (i.e., it will get no credit). Because of this policy, I will not post HW solutions before the two weeks after the due date.

Course Syllabus

hw1 and solution

TCP/IP Network Programming

example tcp/udp programs


Lecture 4 Slides (8/27/97)

hw3 (due 9/5/97)


pthread example program (9/3/97)

hw4 (due 9/12/97) solution

Multithreaded Programming Guide (188 pages) ps (1.3MB) pdf (0.4MB)

More about pthread (basic calls, FAQs)

hw5 (due 9/24/97)

Extra Credit HW for those who like challenges -- or who might want to make up for any lost credits in HW and midterm (due 10/17/97)

Remote Procedure Call

remote procedure call example programs

hw6 (due 10/15/97)

file example programs

IP Multicasting Information

IP multicast API information . This describes the multicast API (application programming interface) using sockets. It is from Steve Deering's original multicast release README (1989) but is still valid.

IP Multicasting Routing (by Semeria and Maufer).

IP Multicast Example Program (By Steve Deering)

Group Communication

Please refer to your class notes.


Please refer to your class notes.

Distributed File Systems

Lecture Notes I (in ps file )
Lecture Notes II (in ps file )


Clock Synchronization (in ps file )
Mutual Exclusion (in ps file )
Resource Allocation (in ps file ), also read the other slides handed out during the class

Atomic Transactions

Serializability and Concurrency (in ps file )
More concurrency control (in ps file )
To get more information about atomic transactions, see Benstein et al. (reserved in the library).

Fault Tolerance

How failure occurs (in ps file ) (11/19/97)
Atomic Commitment (in ps file stolen from Maurice Herlihy) To get more information about atomic commiment, see Benstein et al. (reserved in the library).
Replication (in ps file )
Agreement (in ps file ) (11/24/97)

CSC495/591J References (required readings)

V. Jacobson, ``Congestion Avoidance and Control,'' copy Computer Communication Review, vol. 18, no. 4, pp. 314 -- 329, Aug 1988.

R. Stevens, ``TCP Slow Start, Congestion Avoidance, Fast Retransmit, ans Fast Recovery Algorithm,'' Internet-draft (draft-stevens-tcpca-spec-01.txt from

J. Saltzer, D. Reed, and D. Clark, ``End-to-End Arguments in System Design,'' ACM Transactions on Computer Systems, vol. 2, no. 4, Nov. 1984, pp. 277--288.

T. Anderson, B. Bershad, E. Lazowska, and H. Levy, ``Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism,'' ACM Transactions on Computer Systems, vol. 10, no. 1, Feb. 1992, pp. 53--79.

Ken Birman, ``The process group approach to reliable distributed computing,'' Communications of the ACM, vol 36, no 12 (December 1993), pp. 37-53.

Leslie Lamport, ``Time, Colcks, and The Ordering of Events in a Distributed System,'' Communications of the ACM, vol 21, no 7, July 1978.

D. Cheriton and D. Skeen, ``Understanding the Limitations of Causally and Totally Ordered Communication,'' Proceedings of the 1993 ACM Symposium on Operating Systems Principles, Asheville, NC, Dec 1993.

Ken Birman, ``A Response to Cheriton and Skeen's Criticism of Causal and Totally Ordered Communication,'' Operating Systems Review , Oct 1993, pp 11 -- 21.

Barbara Liskov, Liuba Shrira, and John Wroclawski, ``Efficient At-Most-Once Messages Based on Synchronized Clocks,'' ACM Transactions on Computer Systems vol. 9, no. 2, May 1991, pp 125--142.

CSC495/591J Suggested Reading (where you can find more information)

Levy and Silberschatz, ``Distributed File Systems: Concepts and Examples,'' ACM Computing Survey vol. 22, pp. 321 -- 374, Dec. 1990.

Satyanarayanan, ``Distributed File Systems,'' Chapter 14 of Distributed Systems, edited by Sape Mullender.

Bernstein, Hadzilacos and Goodman, ``Concurrency Control and Recovery in Database Systems,'' Addision Wesley, ISBN 0-201-10715-5. A good reading for atomic transactions and concurrency control