University of Minnesota
CSci5105: Introduction to Distributed Systems

Additional Reading and Resources

This page contains additional reading material as well as other resources such as online tutorials. The relevant material for each lecture will be indicated on the Schedule page, and you are highly encouraged to read these materials in addition to your textbook reading. More emphasis has been put on providing material for those topics that are not covered in the textbook comprehensively (Also Note: Some old papers are not available online, but references have been provided so that you can look for physical copies, e.g., in the library).


  1. [Com1] RPC Tutorial

  2. [Com2] Introduction to ONC RPC

  3. [Com3] Java RMI documentation

  4. [Com4] ONC+ Developer's Guide - SUN Microsystems

  5. [Com5] RPC Tutorial Slides

  6. [Com6] RPC Tutorial Sample Code

  7. [Com7] Beej's Guide to Network Programming (C/C++)

  8. [Com8] Java Socket Programming Examples

  9. [Com9] Thrift Tutorial

  10. [Com10] UDP Example (C/C++)

  11. [Com11] UDP Example (JAVA)

  12. [Com12] Thrift Presentation


  1. [Nam1] Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, and Hari Balakrishnan, "Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications", ACM SIGCOMM 2001, San Deigo, CA, August 2001, pp. 149-160.

  2. [Nam2] Miguel Castro, Peter Druschel, Y C Hu, A Rowstron, "Topology-aware routing in structured peer-to-peer overlay networks", Technical Report MSR-TR-2002-82, 2002.

Clock Synchronization and Event Ordering

  1. [Syn1] Mills, D., "Improved Algorithms for Synchronizing Computer Network Clocks", IEEE/ACM Transactions on NetworkingIEEE Communications Society, 1994.

  2. [Syn2] Leslie Lamport, "Time, Clocks and the Ordering of Events in a Distributed System", Communications of the ACM 21, 7 (July 1978), 558-565.

Data Replication, Consistency Models and Web Caching

  1. [DR1]  David Mosberger, "Memory consistency models",  ACM SIGOPS Operating Systems Review, Volume 27,  Issue 1, January 1993.

  2. [DR2]  V. Duvvuri, P. Shenoy and R. Tewari, "Adaptive Leases: A Strong Consistency Mechanism for the World Wide Web",  IEEE Transactions on Knowledge and Data Engineering (TKDE), 5(5), pages 1266-1276, September 2003.

  3. [DR3]  GIFFORD,D. K. Weighted voting for replicated data. In Proceedings of the 7th Symposium on Operating Systems Principles (Asilomar, Calif., Dec. 1979), ACM, New York, 1979,150-159.

Distributed Computing

  1. [DC1] J. K. Ousterhout, "Scheduling techniques for concurrent systems". 3rd Intl. Conf. on Distributed Computing Systems, Oct. 1982.

  2. [DC2] D. L. Eager, E. D. Lazowska, and J. Zahorjan. "Adaptive load sharing in homogeneous distributed systems". IEEE Transactions on Software Engineering, 12(5), 1986.

  3. [DC3] M. Litzkov, M. Livny and M. Mukta, "Condor: A Hunter of Idle Workstations", Proc of IEEE ICDCS 1988.

  4. [DC4] D.P. Anderson, "BOINC: A System for Public-Resource Computing and Storage", Proceedings of the 5th ACM/IEEE International Workshop on Grid Computing, 2004.

  5. [DC5] Jeffrey Dean and Sanjay Ghemawat, "MapReduce: Simplified Data Processing on Large Clusters ", Proceedings of OSDI, 2004.

Fault Tolerance

  1. [FT1] Leslie Lamport, Marshall Pease, Robert Shostak, "The Byzantine Generals Problem", ACM Transactions on Programming Languages and Systems 4, 3 (July 1982), 382-401.

  2. [FT2] E. A. Akkoyunlu, K. Ekanadham, and R. V. Huber, "Some constraints and tradeoffs in the design of network communications", ACM SIGOPS Operating Systems Review, Volume 9,  Issue 5  (November 1975),  67 - 74.  (See Appendix for Two-Army Problem).

  3. [FT3] K. Birman and T. Joseph, "Exploiting virtual synchrony in distributed systems", Proc. of SOSP '87.

Distributed File Systems

  1. [DFS1] P. Braam, "The Coda Distributed File System", Linux Journal, #50, June 1998.

  2. [DFS2] Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung, "The Google File System", Proceedings of SOSP 2003.

  3. [DFS3] A. Rowstrom and P. Druschel, "Storage management and caching in PAST, a large-scale, persistent peer-topeer storage utility", In Proc. of ACM SOSP, 2001.

Multimedia Systems: Compression

  1. [MSC1] D. Le Gall, "MPEG: A Video Compression Standard for Multimedia Applications", Communications of the ACM, Vol. 34, No. 4, Pages 46-58, April 1991.

Multimedia Systems: Real-Time and Proportional-Share Scheduling

  1. [MSS1] C. L. Liu and J. Layland, "Scheduling algorithms for multiprogramming in a hard real-time environment", Journal of the ACM, 10(1), 1973.

  2. [MSS2] P. Goyal, X. Guo, and H. M. Vin. "A hierarchical cpu scheduler for multimedia operating systems", In Proc. of the 2nd OSDI Symposium, October 1996.

  3. [MSS3] C. Waldspurger, W. Weihl, "Lottery Scheduling: Flexible Proportional-Share Resource Management", In Proc. of OSDI'94.

Multimedia File Systems

  1. [MFS1] P. Shenoy and H. M. Vin, " Cello: A Disk Scheduling Framework for Next Generation Operating Systems", Proceedings of ACM SIGMETRICS Conference, pages 44-55, June 1998.

Multimedia Servers

  1. [MS1] A. Dan, D. Sitaram, "Buffer Management Policies for an On-Demand Video Server", IBM Research Report RC 19347, 1993.

  2. [MS2] K. Hua, Y. Cai and S. Sheu, "Patching: A Multicast Technique for True On-Demand Services", ACM Multimedia, 1998.

Virtualization and Cloud Computing

  1. [VM1] G. Popek and R. Goldberg, "Formal requirements for virtualizable third generation architectures", Communications of the ACM, Vol. 17, No. 7, pp 412-421, July 1974.

  2. [VM2] M. Rosenblum and T. Garfinkel, "Virtual Machine Monitors: Current Technology and Future Trends", IEEE Computer, Vol. 38, No. 5, pp 39-47, May 2005.

  3. [VM3] M. Ambrust et al. "Above the Clouds: A Berkeley View of Cloud Computing", UC Berkeley Tech. Report., 2009.