[Kernel, courtesy IowaFarmer.com CornCam]

CS 235 Advanced Operating Systems, Fall 2010

Tentative Schedule

Week 0 Thu 9/23 Course introduction, x86 assembly
Week 1 Tue 9/28 x86 assembly and memory management
PC Assembly Language, Paul A. Carter, November 2003 [SKIM]
"Brennan's Guide to Inline Assembly", Brennan "Bas" Underwood [SKIM]
Thu 9/30 Operating system bugs
"Bugs as Deviant Behavior: A General Approach to Inferring Errors in Systems Code", Dawson Engler, David Yu Chen, Seth Hallem, Andy Chou, and Benjamin Chelf, Proc. 18th SOSP, Oct. 2001, pp.57-72
"Debugging in the (Very) Large: Ten Years of Implementation and Experience", Kirk Glerum, Kinshuman Kinshumann, Steve Greenberg, Gabriel Aul, Vince Orgovan, Greg Nichols, David Grant, Gretchen Loihle, and Galen Hunt, Proc. 22nd SOSP, Oct. 2009
Further reading on OS bug finding:
"Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions", Dawson Engler, Benjamin Chelf, Andy Chou, and Seth Hallem, Proc. 4th OSDI, Oct. 2000, pp.1-16
"An Empirical Study of Operating Systems Errors", Andy Chou, Junfeng Yang, Benjamin Chelf, Seth Hallem, and Dawson Engler, Proc. 18th SOSP, Oct. 2001, pp.73-88
"Klee: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs", Cristian Cadar, Daniel Dunbar, and Dawson Engler, Proc. 8th OSDI, Dec. 2008
Fixing Device Drivers, a collection of research by Michael M. Swift's group
Week 2 Tue 10/5 No class
Thu 10/7 Virtual memory
"Virtual Memory Primitives for User Programs", Andrew W. Appel and Kai Li, Proc. ASPLOS IV, 1991, pp.96-107
Further reading on garbage collection and virtual memory:
"CRAMM: Virtual Memory Support for Garbage-Collected Applications", Ting Yang, Emery D. Berger, Scott F. Kaplan, And J. Eliot B. Moss, Proc. 7th OSDI, Nov. 2006, pp.103-116
Fri 10/8
Lab 1 due, 11:59pm
Week 3 Tue 10/12 Virtual memory and virtual machines
"Virtual Memory Management in VMware ESX Server", Carl A. Waldspurger, Proc. 5th OSDI, Dec. 2002
Further reading on VMM page sharing:
"Difference Engine: Harnessing Memory Redundancy in Virtual Machines", Diwaker Gupta, Lee, Michael Vrable, Stefan Savage, Alex C. Snoeren, George Varghese, Geoffrey M. Voelker, and Amin Vahdat, Proc. 8th OSDI 2008, Dec. 2008
Further reading on Disco:
"Disco: Running Commodity Operating Systems on Scalable Multiprocessors", Edouard Bugnion, Scott Devine, and Mendel Rosenblum, Proc. 16th SOSP, Oct. 1997, pp.143-156
Thu 10/14 Virtual machine designs
"A comparison of software and hardware techniques for x86 virtualization", Keith Adams and Ole Agesen, Proc. ASPLOS XII, Oct. 2006, pp.2-13; focus on sections 1-3
"Xen and the Art of Virtualization", Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, and Andrew Warfield, Proc. 19th SOSP, Oct. 2003, pp.164-177
Week 4 Tue 10/19 Operating systems interfaces: Unix
"The UNIX Time-Sharing System", D. M. Ritchie and K. Thompson, 1974, revised from Communications of the ACM 17(7), July 1974, pp.365-375
"The Evolution of the Unix Time-sharing System", Dennis M. Ritchie, AT&T Bell Laboratories Technical Journal 63(6), Part 2, Oct. 1984, pp.1577-93
Thu 10/21 Kernel design: exokernels
"Exokernel: An Operating System Architecture for Application-Level Resource Management", Dawson R. Engler, M. Frans Kaashoek, and James O'Toole Jr., Proc. 15th SOSP, Dec. 1995, pp.251-266
Further reading on exokernels:
"Application Performance and Flexibility on Exokernel Systems", M. Frans Kaashoek, Dawson R. Engler, Gregory R. Ganger, Héctor M. Briceño, Russell Hunt, David Mazières, Thomas Pinckney, Robert Grimm, John Jannotti, and Kenneth Mackenzie, Proc. 17th SOSP, Oct. 1997, pp.52-65
"Fast and flexible application-level networking on exokernel systems", Gregory R. Ganger, Dawson R. Engler, M. Frans Kaashoek, Héctor M. Briceño, Russell Hunt, and Thomas Pinckney, ACM Trans. on Computer Systems 20(1), Feb. 2002, pp.49-83
Fri 10/22
Lab 2 due, 11:59pm
Week 5 Tue 10/26 Kernel design: microkernels
"Improving IPC by Kernel Design", Jochen Liedtke, Proc. 14th SOSP, Dec. 1993, pp.175-188
Thu 10/28 Scheduling
"Borrowed-Virtual-Time (BVT) scheduling: supporting latency-sensitive threads in a general-purpose scheduler", Kenneth J. Duda and David R. Cheriton, Proc. 17th SOSP, Dec. 1999, pp.261-276
Week 6 Tue 11/2
Test 1
Thu 11/4 Synchronization I
"Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors", John M. Mellor-Crummey and Michael L. Scott, ACM Trans. on Computer Systems 9(1), Feb. 1991, pp.21-65
Fri 11/5
Lab 3 due, 11:59pm
Week 7 Tue 11/9 Synchronization II
"Read-Copy Update", Paul E. McKenney, Jonathan Appavoo, Andi Kleen, Orran Krieger, Rusty Russell, Dipankar Sarma, and Maneesh Soni, Proc. Ottawa Linux Symposium 2001
"An Analysis of Linux Scalability to Many Cores", Silas Boyd-Wickizer, Austin Clements, Yandong Mao, Aleksey Pesterev, M. Frans Kaashoek, Robert Morris, and Nickolai Zeldovich, Proc. 9th OSDI, 2010

This lecture will focus on read-copy-update, an interesting technique for fast concurrency management in multiprocessors. You can also glance through the talk and/or the articles below to get a feeling for RCU's goals.

"Abstraction, Reality Checks, and RCU", Paul E. McKenney, talk at U. of Toronto Cider Seminar, July 26, 2005
"What is RCU, Fundamentally?", Paul E. McKenney and Jonathan Walpole, Linux Weekly News, Dec. 19, 2007
"Performance of memory reclamation for lockless synchronization", Thomas E. Hart, Paul E. McKenney, Angela Demke Brown, and Jonathan Walpole, J. of Parallel and Distributed Computing 67(12), Dec. 2007, pp.1270-1285

A paper on transactional memory:

"TxLinux: Using and Managing Hardware Transactional Memory in an Operating System", Christopher J. Rossbach, Owen S. Hofmann, Donald E. Porter, Hany E. Ramadan, Aditya Bhandari, and Emmett Witchel, Proc. 21st SOSP, 2007
Thu 11/11 Veterans Day Holiday
Week 8 Tue 11/16 File systems
"Venti: a new approach to archival storage", Sean Quinlan and Sean Dorward, Proc. 1st USENIX Conf. on File System And Storage Technologies (FAST), Jan. 2002, pp.89-101
Thu 11/18 Distributed systems
"The Google File System", Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung, Proc. 19th SOSP, 2003
Fri 11/19
Lab 4 due, 11:59pm
Week 9 Tue 11/23 TBA
Thu 11/25 Thanksgiving Holiday
Week 10 Tue 11/30 Security & the OS interface
"Portably Solving File TOCTTOU Races with Hardness Amplification", Dan Tsafrir, Tomer Hertz, David Wagner, and Dilma Da Silva, Proc. 6th USENIX FAST, Feb. 2008
Thu 12/2
Test 2
Finals Week Fri 12/10
Lab 5 due (no extensions)

Back to CS 235 Advanced Operating Systems