CS587 - Spring 2006
Basic Course Information
- Current Grades
- Programming Assignments
- SRPC Runtime - Assignment, Implementation Tips
- Previous Tests
Reading List
Basic Kernel Design
- Dennis M. Ritchie and Ken Thompson. The UNIX time-sharing system. Bell Systems Technical Journal, 57(6):1905–1929, 1978.
- H. Härtig, M. Hohmuth, J. Liedtke, S. Schönberg, and J. Wolter. The performance of μ-kernel-based systems|. In Proceedings of the 16th ACM Symposium on Operating Systems Principles, 1997.
- D. Engler, M. Kaashoek, and J. O’Toole. Exokernel: An operating system architecture for application-level resource management. In Proceedings of the 15th ACM Symposium on Operating Systems Principles, pages 251–266, Copper Mountain Resort, CO, 1995.
- A. Whitaker, M. Shaw, and S. Gribble. Scale and performance in the Denali isolation kernel. In Proceedings of the Fifth USENIX Symposium on Operating System Design and Implementation (OSDI), Boston, MA, December 2002.
- Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, and Andrew Warfield. Xen and the art of virtualization. In Proceedings of the 19th Sympoium on Operating Systems (SOSP-19), October 2003.
Threads, Processes, and Synchronization
- Bulter W. Lampson and D. D. Redell. Experience with processes and monitors in Mesa. Communications of the ACM, 23(2):105–117, 1980.
- Thomas E. Anderson, Brian N. Bershad, Edward D. Lazowska, and Henry M. Levy. Scheduler activations: Effective kernel support for user-level management of parallelism. ACM Transactions on Computer Systems, 10(1):53–70, 1992.
- Henry Massalin and Calton Pu. Threads and input-output in the Synthesis kernel. In Proceedings of the 12th ACM Symposium on Operating Systems Principles, pages 191–201, Litchfield Park, AZ USA, 1989.
- M. Greenwald and David Cheriton. The synergy between non-blocking synchronization and operating system structure. In Proceedings of the Second USENIX Symposium on Operating Systems Design and Implementation, pages 122–136, 1996.
File Systems
- Marshall K. McKusick, William N. Joy, Samuel J. Leffler, and Robert S. Fabry. A fast file system for UNIX. ACM Transactions on Computer Systems, 2(3):181–197, 1984.
- 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, 1992.
- Vivek S. Pai, Peter Druschel, and Willy Zwaenepoel. IOLite: A Unified Buffering and Caching System. In Proceedings of the Third Usenix Symposium on Operating Systems Design and Implementation (OSDI'099), February 1999.
Miscellaneous - Memory Management and RPC
- M. Young, A. Tevanian, R. Rashid, D. Golub, J. Eppinger, J. Chew, W. Bolosky, D. Black, and R. Bar. The duality of memory and communication in the implementation of a multiprocessor operating system. In Proceedings of the 11th ACM Symposium on Operating Systems Principles, pages 63–76, 1987.
- A. Birrell and B. Nelson. Implementing remote procedure calls. ACM Transactions on Computer Systems, 2(1):39–59, 1984.
- Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy. Lightweight remote procedure call. ACM Transactions on Computer Systems, 6(1):37–55, 1990.
Networking
- David Mosberger and Larry L. Peterson. Making paths explicit in the Scout operating system. In Proceedings of the 2nd USENIX Symposium on Operating Systems Design and Implementation (OSDI), pages 153–168, 1996.
- J. C. Mogul and K. K. Ramakrishnan. Eliminating receive livelock in an interrupt-driven kernel. ACM Transactions on Computer Systems, 15(3):217–252, 1997.
Distributed File Systems
- J. H. Howard, M. L. Kazar, S. G. Menees, D. A. Nichols, M. Satyanarayanan, R. N. Sidebotham, and M. J. West. Scale and performance in a distributed file system. ACM Transactions on Computer Systems, 6(1):51–81, 1988.
- Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung. The Google file system. In Proceedings of the Nineteenth ACM Symposium on Operating Systems principles (SOSP ’03), pages 29–43, New York, NY, USA, 2003. ACM Press.
Distributed Computing Systems and Consistency
- D. Cheriton and D. Skeen. Understanding the Limitations of Causally and Totally Ordered Communication. In Proceedings of the 14th ACM Symposium on Operating Systems Principles, 1993.
- J. B. Carter, J. K. Bennet, and W. Zwanepoel. Implementation and performance of Munin. In Proceedings of the 13th ACM Symposium on Operating Systems Principles, pages 152–164, 1991.
- K. Petersen, M. J. Spreitzer, D. B. Terry, M. M. Theimer, and A. J. Demers. Flexible update propagation for weakly consistent replication. In Proceedings of the 16th ACM Symposium on Operating Systems Principles, pages 288–301, 1997.
Peer-to-Peer Systems
- F. Dabek, M. F. Kaashoek, K. Karger, R. Morris, and I. Stoica. Wide-area cooperative storage with CFS. In Proceedings of the 18th Symposium on Operating Systems Principles, 2001.
- Larry L. Peterson, David Culler, Thomas Anderson, and T. Roscoe. A blueprint for introducing disruptive technology into the Internet. In Proceedings of the 1st Workshop on Hot Topics in Networks (HotNets-I), 2002.
Specific Complete Systems
- John K. Ousterhout, A. Cherenson, F. Douglis, M. Nelson, and B. Welch. The Sprite network operating system. IEEE Computer, 21(2):23–26, 1988.
- Frank Schmuck and Jim Wylie. Experience with transactions in QuickSilver. In Proceedings of the Thirteenth ACM Symposium on Operating Systems Principles (SOSP), pages 239-253, 1991.
- B. Gamsa, Orran Krieger, J. Appavoo, and M. Stumm. Tornado: Maximizing locality and concurrency in a shared memory multiprocessor operating system. In Proceedings of the 3rd USENIX Symposium on Operating Systems Design and Implementation, pages 87–100, 1999.
- Jeffrey Dean and Sanjay Ghemawat. Mapreduce: Simplified data processing on large clusters. In Proceedings of the Sixth USENIX Symposium on Operating Systems Design and Implementation (OSDI), pages 137–150, 2004.