Reading List
August 24, 2006
CSci 555 / Fall 2006

Except as noted, all items on the reading list are required reading. Chapters may be found in the textbook. Chapter numbers are from the 4th edition, followed by the chapter numbers in the 3rd edition if known in square brackets. The dates following the section headings are the weeks when these papers will be discussed. You should read the papers before the lectures in the given week. Papers are linked from the number preceding the reference in this reading list. The password is cs555.

Where an html version of the paper is available, a link follows the reference. If a dl link follows a reference it links to a cleaner acrobat version of the paper available through USC's digital library subscription, but might be retrievable only from USC network addresses. If the number of the reference is followed by a d, it means that a cleaner digital library version is available (see the link following reference). A - following the number indicates that we would like to find a cleaner copy.

Click here for advice on how to read the papers in this list.

General References

1
George Coulouris, Jean Dollimore, and Tim Kindberg. Distributed Systems: Concepts and Design. Addison Wesley, 4th edition by Coulouris, Dollimore, and Kindberg, which is available at the USC book store, or from other sources. You may also use the third edition

2
Tanenbaum, Andrew S. Modern Operating Systems, Prentice Hall, 2001 available at the University Bookstore or possibly from other students who have taken CSci402. Note: this is the text that was once used for for CSci 402, not for CSci 555 - but it is useful reading for students who have difficulty with the prerequisite material. .

3-
Robert A. Day. How to write a scientific paper. IEEE Transactions on Professional Communication, 20:32-37, June 1977.

4-
Roy Levin and David D. Redell. An evaluation of the ninth SOSP submissions. Operating Systems Review, 17(3):35-40, July 1983.

Introduction - August 25

5
Characterization of Distributed Systems. Distributed Systems: Concepts and Design, chapter 1[1].

6
System Models Distributed Systems: Concepts and Design, chapter 2[2].

7-
J.H. Saltzer, D.P. Reed and D.D. Clark. End-To-End Arguments in System Design. Proceedings of the 2nd International Conference on Distributed Systems, 509-512, April 1981. html

Communication Models - (September 1)

8d
Andrew D. Birrel and Bruce Jay Nelson. Implementing remote procedure calls. ACM Transactions on Computer Systems, 2(1):39-59, February 1984. dl

9d
Brian N. Bershad, Thomas E. Anderson, Edward D Lazowska, and Henry M. Levy. Lightweight remote procedure call. ACM Transactions on Computer Systems, 8(1):37-55, February 1990. dl

10d
Nicholas Carriero and David Gelernter. The s/net's linda kernel. ACM Transactions on Computer Systems, 4(2):110-129, May 1986. dl

11d
Kai Li and Paul Hudak. Memory coherence in shared virtual memory systems. ACM Transactions on Computer Systems, 7(4):321-359, November 1989. dl

12
Interprocess Communication. Distributed Systems: Concepts and Design, chapter 4. (optional)

13
Distributed Objects and Remote Invocation Distributed Systems: Concepts and Design, chapter 5. (optional)

14
Distributed Shared Memory. Distributed Systems: Concepts and Design, chapter 18. (optional)

Concurrency, Transactions, Deadlock - (September 8, September 15)

15d
Leslie Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, 21(7):558-565, July 1978. dl

16d
K. M. Chandi, J. Misra and L. M. Haas Distributed Deadlock Detection ACM Transactions on Computer Systems, 1(2):144-156, May 1983. dl

17d
David Jefferson. Virtual time. ACM Transactions on Programming Languages and Systems, 7(3):404-425, July 1985. dl

18d
Kenneth P. Birman and Thomas A. Joseph. Exploiting virtual synchrony in distributed systems. In Proceedings of the 11th ACM Symposium on Operating Systems Principles, pages 123-138, November 1987. dl

19d
Randy F. Pausch Alfred Z. Spector and Gregory Bruell. Camelot: A flexible, distributed transaction processing system. In Proceedings of the 33rd IEEE Computer Society International Conference(Compcon 88), pages 432-436, March 1988. dl

20d
David K. Gifford. Weighted voting for replicated data. In Proceedings of the 7th ACM Symposium on Operating Systems Principles, pages 150-159, December 1979. Pacific Grove, California. dl

21d
Carl Hauser, Christian Jacobi, Marvin Theimer, Brent Welch, and Mark Weiser. Using threads in interactive systems: A case study. In Proceedings of the 14th ACM Symposium on Operating Systems Principles, pages 94-105, December 1993. dl

22
Time and Global States Distributed Systems: Concepts and Design, chapter 11[10]. (optional)

22
Coordination and Agreement Distributed Systems: Concepts and Design, chapter 12[11]. (optional)

24
Transactions and Concurrency Control. Distributed Systems: Concepts and Design, chapter 13 [12]

25
Distributed Transaction. Distributed Systems: Concepts and Design, chapter 14 [13]

23
Replication. Distributed Systems: Concepts and Design, chapter 15[14].

Naming - (September 22)

27h
Jermome H. Saltzer. On the naming and binding of network destinations. In Proceedings of the International Symposium on Local Computer Networks, pages 311-317, April 1982. text available as RFC 1498

28d
Andrew D. Birrell, Roy Levin, Roger M. Needham, and Michael D. Schroeder. Grapevine: An exercise in distributed computing. Communications of the ACM, 25(4):260-274, April 1982. dl

29d
Michael D. Schroeder, Andrew D. Birrell, and Roger M. Needham. Experience with Grapevine: The growth of a distributed system. ACM Transactions on Computer Systems, 2(1):3-23, February 1984. dl

30-
Douglas B. Terry, Mark Painter, David W. Riggle, and Songnian Zhou. The Berkeley internet domain server. In Proceedings of the Summer 1984 Usenix Conference, pages 23-31, June 1984.

31-
Peter B. Danzig, Katia Obraczka, and Anant Kumar. An analysis of wide-area name server traffic: A study of the domain name system. In Proceedings of SIGCOMM 92, pages 281-292, January 1992.

32h
Butler W. Lampson. Designing a global name service. In Proceedings of the 4th ACM Symposium on Principles of Distributed Computing, August 1985. html

33-
Brent B. Welch and John K. Ousterhout. Prefix tables: A simple mechanism for locating files in a distributed system. In Proceedings of the 6th International Conference on Distributed Computing Systems, pages 184-189, May 1986.

34d
David R. Cheriton and Timothy P. Mann. Decentralizing a global naming service for improved performance and fault tolerance. ACM Transactions on Computer Systems, 7(2):147-183, May 1989. dl

35-
B. Clifford Neuman. The need for closure in large distributed systems. Operating Systems Review, 23(4):28-30, October 1989.

36-
Douglas Comer, Ralph E. Droms, and Thomas P. Murtagh. An experimental implementation of the Tilde naming system. Computing Systems, 4(3):487-515, Fall 1990.

37-
B. Clifford Neuman. The Prospero File System: A global file system based on the Virtual System Model. Computing Systems, 5(4):407-432, Fall 1992.

38-
B. Clifford Neuman and Steven Seger Augart. Prospero: A base for building information infrastructure. In Proceedings of INET'93, August 1993.
pdf

39d
Larry L. Peterson. The Profile naming service. ACM Transactions on Computer Systems, 6(4):341-364, November 1988. dl

40-
Stuart Sechrest and Michael McClennen. Blending hierarchical and attribute-based file naming. In Proceedings of the 12th International Conference on Distributed Computer Systems, June 1992.

42
Name Services. Distributed Systems: Concepts and Design, chapter 9[9]. (optional)

Security - (September 22)

43-
B. Clifford Neuman. Protection and security issues for future systems. In Proceedings of the Workshop on Operating Systems of the 90s and Beyond, July 1991.

44-
Butler W. Lampson. A note on the confinement problem. Communications of the ACM, 16(10):613-615, October 1973.

45-
V. L. Voydock and S. T. Kent. Security mechanisms in high-level network protocols. ACM Computing Surveys, 15(2):135-171, June 1983.

46-
Roger M. Needham and Michael D. Schroeder. Using encryption for authentication in large networks of computers. Communication of the ACM, 21(12):993-999, December 1978.

51d
Andrew S. Tanenbaum, Robbert van Renesse, Hans van Staveren, Gregory J. Sharp, Sape J. Mullender, Jack Jansen, and Guido van Rossum. Experience with the Amoeba distributed operating system. Communications of the ACM, 33(12):47-63, December 1990. dl

Security - Virtualization - Trusted Computing (September 29)

47h
B. Clifford Neuman and Theodore Ts'o. Kerberos: An authentication service for computer networks. IEEE Communications, 32(9), September 1994. html

48
B. Barham, Paul, et. al. Xen and the Art of Virtualization. Proceedings of the 19th ACM Symposium on Operating Systems Principles. 2003. (ACM Digital Library Link)

49-
Andrew D. Birrell, Butler W. Lampson, Roger M. Needham, and Michael D. Schroeder. A global authentication service without global trust. In Proceedings of the IEEE Symposium on Security and Privacy, pages 223-230, April 1986.

52-
M. Gasser, A. Goldstein, C. Kaufman, and B. Lampson. The Digital distributed system security architecture. In Proceedings of the 1989 National Computer Security Conference, pages 305-319, 1989.

53-
B. Clifford Neuman. Proxy-based authorization and accounting for distributed systems. In Proceedings of the 13th International Conference on Distributed Computing Systems, pages 283-291, May 1993. pdf

54
Security. Distributed Systems: Concepts and Design, chapter 7. (optional)

File Systems - (October 6 and 13)

55-
Russel Sandberg, David Goldberg, Steve Kleiman, Dan Walsh, and Bob Lyon. Design and Implementation of the Sun Network Filesystem. In Proceedings of the Summer 1985 Usenix Conference, pages 119-130, June 1985.

56-
Michael N. Nelson, Brent B. Welch, and John K. Ousterhout. Caching in the Sprite network file system. ACM Transactions on Computer Systems, 6(1):134-154, February 1988.

57-
Mahadev Satyanarayanan. Scalable, secure, and highly available distributed file access. IEEE Computer, 23(5):9-21, May 1990.

58
D. Mazieres, M. Kaminsky, F. Kaashoek, E. Witchel. Separating key management from file system security. In proceedings of the 17th ACM Symposium on Operating Systems Principles, December 1999.

59d
Cary G. Gray and David R. Cheriton. Leases: An efficient fault-tolerant mechanism for distributed file cache consistency. In Proceedings of the 12th ACM Symposium on Operating Systems Principles, pages 202-210, December 1989. dl

60d
Mendel Rosenblum and John K. Ousterhout. The design and implementation of a log-structured file system. ACM Transactions on Computer Systems, 10(1):26-52, February 1992. dl

61d
David A. Patterson, Garth Gibson, and Randy H. Katz. A Case for Redundant Arrays of Inexpensive Disks (RAID). In Proceedings of the 1988 ACM SIGMOD Conference, pages 109-116, 1988. dl

62
Distributed File Systems. Distributed Systems: Concepts and Design, chapter 8[8].

Case Studies - (October 20)

64-
B. Walker, G. Popek, R. English, C. Kline, and G. Thiel. The Locus distributed operating system. In Proceedings of the 9th ACM Symposium on Operating Systems Principles, pages 49-70, October 1983.

65
Distributed Operating Systems: Case Studies. Distributed Systems: Concepts and Design, chapter 17[18].

Case Studies - (October 27)

66d
James H. Morris, Mahadev Satyanarayanan, Michael H. Conner, John H. Howard, David S. H. Rosenthal, and F. Donelson Smith. Andrew: A distributed personal computing environment. Communications of the ACM, 29(3):184-201, March 1986. dl

67-
George A. Champine, Daniel E. Geer Jr., and William N. Ruh. Project athena as a distributed computer system. IEEE Computer, 23(9):40-51, September 1990.

68d
David Notkin, Andrew P. Black, Edward D. Lazowska, Henry M. Levy, Jan Sanislo, and John Zahorjan. Interconnecting heterogeneous computer systems. Communications of the ACM, 31(3):258-273, March 1988. dl

69-
Werner Vogels, Dan Dimitriu, Ken Birman, Rod Gamache, Rob Short, John Vert, Joe Barrera, and Jim Gray. The Design and Architecture of the Microsoft Cluster Service. Proceedings of the IEEE FTCS'98, June 1998.

70-
Steve Vinoski. CORBA: Integrating Diverse Applications Within Distributed Heterogeneous Environments. IEEE Communications Magazine, 35(2), February 1997.

Kernels - (November 3)

71d
David R. Cheriton. The V distributed system. Communication of the ACM, 31(3):314-333, March 1988. dl

72-
Larry Peterson, Norman Hutchenson, Sean O'Malley, and Herman Rao. The x-kernel: A platform for accessing internet resources. IEEE Computer, 23(5):23-33, May 1990.

73-
David L. Black, David B. Golub, Daniel P. Julin, Richard F. Rashid, Richard P. Draves, Randall W. Dean, Alessandro Forin, Joseph Barrera, Hideyuki Tokuda, Gerald Malan, and David Bohman. Microkernel operating system architecture and mach. In Proceedings of the USENIX Workshop on Microkernels and Other Kernel Architectures, pages 11-30, April 1992.

74
Distributed Operating Systems. Distributed Systems: Concepts and Design, chapter 18[6].

Scheduling, real-time, fault-tolerance, database support
(November 10)

75d
Thomas E. Anderson, Brian N. Bershad, Edward D. Lazowska, and Henry M. Levy. Scheduler activations: Effective kernel support for the user-level management of parallelism. ACM Transactions on Computer Systems, 10(1):53-79, February 1992. dl

76-
D. L. Black. Scheduling support for concurrency and parallelism in the mach operating system. IEEE Computer, pages 35-43, May 1990.

77-
M. J. Lizkow and M. W. Mutka. Condor - A Hunter of Idle Workstations Proceedings of the 8th. Int'l Conf. on Distributed Computing Systems, 104-111, 1988.

78-
B. Clifford Neuman and Santosh Rao. The Prospero Resource Manager: A scalable framework for processor allocation in distributed systems. Concurrency: Practice and Experience, pages 339-355, June 1994.

79d
Flaviu Cristian. Understanding fault-tolerant distributed systems. Communications of the ACM, 34(2):57-78, February 1991. dl

80-
Michael Stonebraker. Operating System Support for Database Management. Communications of the ACM, 24(7):412-418, July 1981.

81
Recovery and Fault Tolerance. Distributed Systems: Concepts and Design, chapter 14.3-14.4[15].

Guidelines for building scalable systems - (November 17)

82-
Butler W. Lampson. Hints for computer system design. In Proceedings of the 9th ACM Symposium on Operating Systems Principles, pages 33-48, 1983.

83-
B. Clifford Neuman. Scale in distributed systems. In Readings in Distributed Computing Systems, IEEE Computer Society Press, 1994.
84-
Sergey Brin and Lawrence Page, The anatomy of a large-scale hypertextual Web search engine, in Computer Networks and ISDN Systems, vol 30, pages 107--117., 1998