Reading List Citing: This reading list is a modified subset of the Reading list of CSci555- Advanced OS course at University of Southern California. Its link is here. This page is under construction. The Links will be corrected in a while. General References 1 George Coulouris, Jean Dollimore, and Tim Kindberg. Distributed Systems: Concepts and Design. Addison Wesley, 3rd Ed., 2002. 2 Tanenbaum, Andrew S. Distributed Systems:Practices and Paradigms, Prentice Hall, 2002 3Robert A. Day. How to write a scientific paper. IEEE Transactions on Professional Communication, 20:32-37, June 1977. 4Roy Levin and David D. Redell. An evaluation of the ninth SOSP submissions. Operating Systems Review, 17(3):35-40, July 1983. Introduction 5 Characterization of Distributed Systems. Distributed Systems: Concepts and Design, chapter 1[1]. 6 Design Goals. Distributed Systems: Concepts and Design, chapter 1[2]. 7J.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. It is here. The End of the End-to-End Argument (April 2000 discussion by David P. Reed) Communication Models 8. Andrew D. Birrel and Bruce Jay Nelson. Implementing remote procedure calls. ACM Transactions on Computer Systems, 2(1):39-59, February 1984. 9. 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. 10. Nicholas Carriero and David Gelernter. The s/net's linda kernel. ACM Transactions on Computer Systems, 4(2):110-129, May 1986. 11. Kai Li and Paul Hudak. Memory coherence in shared virtual memory systems. ACM Transactions on Computer Systems, 7(4):321-359, November 1989. 12 Interprocess Communication. Distributed Systems: Concepts and Design, chapter 4[1]. (optional) 13 Remote Procedure Calling. Distributed Systems: Concepts and Design, chapter 5[1]. (optional) 14 Distributed Shared Memory. Distributed Systems: Concepts and Design, chapter 16[1]. (optional) Concurrency, Transactions, Deadlock 15. Leslie Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, 21(7):558-565, July 1978. 16. K. M. Chandi, J. Misra and L. M. Haas Distributed Deadlock Detection ACM Transactions on Computer Systems, 1(2):144-156, May 1983. 17. David Jefferson. Virtual time. ACM Transactions on Programming Languages and Systems, 7(3):404-425, July 1985. 18. 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. 19Randy 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. 20. 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. 21. 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 94105, December 1993. 21A. Leslie Lamport, Robert Shostak, and Marshall Pease. The Byzantine Generals Problem, ACM Transactions on Programming Languages and Systems, Vol. 4, No. 3, July 1982, Pages 382-401. 22 Time and Coordination. Distributed Systems: Concepts and Design, chapter 10,11[1]. (optional) 23 Replication. Distributed Systems: Concepts and Design, chapter 14[1]. 24 Shared Data and Transactions. Distributed Systems: Concepts and Design, chapter 12.1-12.3[1]. 25 Concurrency Control. Distributed Systems: Concepts and Design, chapter 12.4-12.8[1]. 26 Distributed Transactions. Distributed Systems: Concepts and Design, chapter 13[1]. Naming 27. 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 28. 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. 29. 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. 30Douglas 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. 31Peter 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. 32. Butler W. Lampson. Designing a global name service. In Proceedings of the 4th ACM Symposium on Principles of Distributed Computing, August 1985. 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. 34. 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. 35B. Clifford Neuman. The need for closure in large distributed systems. Operating Systems Review, 23(4):28-30, October 1989. 36Douglas Comer, Ralph E. Droms, and Thomas P. Murtagh. An experimental implementation of the Tilde naming system. Computing Systems, 4(3):487-515, Fall 1990. 37B. Clifford Neuman. The Prospero File System: A global file system based on the Virtual System Model. Computing Systems, 5(4):407-432, Fall 1992. 38B. Clifford Neuman and Steven Seger Augart. Prospero: A base for building information infrastructure. In Proceedings of INET'93, August 1993. 39Larry L. Peterson. The Profile naming service. ACM Transactions on Computer Systems, 6(4):341-364, November 1988. 40Stuart Sechrest and Michael McClennen. Blending hierarchical and attribute-based file naming. In Proceedings of the 12th International Conference on Distributed Computer Systems, June 1992. 41Katia Obraczka, Peter B. Danzig, and Shih-Hao Li. Internet resource discovery services. IEEE Computer, 26(9):3543, September 1993. 42 Name Services. Distributed Systems: Concepts and Design, chapter 9[1]. (optional) Security 43B. Clifford Neuman. Protection and security issues for future systems. In Proceedings of the Workshop on Operating Systems of the 90s and Beyond, July 1991. 44Butler W. Lampson. A note on the confinement problem. Communications of the ACM, 16(10):613-615, October 1973. 45V. L. Voydock and S. T. Kent. Security mechanisms in high-level network protocols. ACM Computing Surveys, 15(2):135-171, June 1983. 46Roger 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. 47B. Clifford Neuman and Theodore Ts'o. Kerberos: An authentication service for computer networks. IEEE Communications, 32(9), September 1994 48M. Burrows, M. Abadi, and R. Needham. A logic of authentication. ACM Transactions on Computer Systems, 8(1):18-36, February 1990. 49Andrew 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. 50- Tatyana Ryutov, Clifford Neuman, Dongho Kim, and Li Zhou, Integrated Access Control and Intrusion Detection for Web Servers, In a special issue on Security in Information Systems for the IEEE Transactions on Parallel and Distributed Systems., Vol. 14, No 9, September 2003, 51Andrew 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. Security 52M. 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. 53B. 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. 54 Security. Distributed Systems: Concepts and Design, chapter 7[1]. (optional) File Systems 55Russel 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. 56Michael 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. 57Mahadev Satyanarayanan. Scalable, secure, and highly available distributed file access. IEEE Computer, 23(5):921, May 1990. 58James J. Kistler and M. Satyanarayanan. Disconnected Operation in the Coda File System. ACM Transactions on Computer Systems, 10(1):3-25, February 1992. 59Cary 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. 60Mendel 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. 61David 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. 62 File Service: A model. Distributed Systems: Concepts and Design, chapter 8.1-2,8.5-6[1]. (optional) 63 File Service: Case Studies. Distributed Systems: Concepts and Design, chapter 8.3-4[1]. Introduction 1. Eric A. Brewer. Lessons from Giant-Scale Services. IEEE Internet Computing, 5(4): pp.46-55 http://citeseer.ist.psu.edu/476298.html Communication Models and Abstractions 2. A. D. Birrell and B. J. Nelson. Implementing remote procedure calls. ACM Transactions on Computer Systems 2(1):3959, February 1984 http://citeseer.ist.psu.edu/birrell84implementing.html Naming in Distributed Systems 3. P.V. Mockapetris and K.J. Dunlap. Development of the Domain Name System. Proceedings of ACM SIGCOMM 1988 http://citeseer.ist.psu.edu/mockapetris88development.html Concept of Time in Distributed Systems 4. Leslie Lamport. Time, Clocks, and the Ordering of Events in a Distributed System. Communications of the ACM, 21(7):558-565, July 1978 Performance and Scalability 5. Yasushi Saito, Brian Bershad, and Henry Levy. Manageability, Availability and Performance in Porcupine: A Highly Scalable Cluster-Based Mail Service. Proc. of the 17th ACM Symp. on Operating Systems Principles, December 1999 http://citeseer.ist.psu.edu/saito99manageability.html Availability and Correctness 6. D. B. Terry, et al. Managing Update Conflicts in Bayou, a Weakly Connected Replicated Storage System. Proceedings of the Fifteenth ACM Symposium on Operating Systems Principles, 1995 http://citeseer.ist.psu.edu/terry95managing.html 7. John Ousterhout. The Role of Distributed State. CMU Computer Science: A 25th Anniversary Commemorative, ACM Press Anthology Series, R. Rashid (Ed.), July 1991 http://citeseer.ist.psu.edu/ousterhout91role.html Robustness 8. George Candea et al. Microreboot -- A Technique for Cheap Recovery. Proc. 6th Symposium on Operating Systems Design and Implementation (OSDI), San Francisco, CA, December 2004 http://citeseer.ist.psu.edu/716820.html Security 9. Stuart Staniford, Vern Paxson, and Nicholas Weaver. How to Own the Internet in Your Spare Time. Proceedings of the 2002 USENIX Security Symposium, San Francisco, CA, August 2002. http://citeseer.ist.psu.edu/staniford02how.html Engineering Systems 10. Butler W. Lampson. Hints for computer system design. Proceedings of the Ninth ACM Symposium on Operating Systems Principles (SOSP). http://citeseer.ist.psu.edu/lampson83hint.html