[Kernel, courtesy IowaFarmer.com CornCam]

CS 235 Advanced Operating Systems, Winter 2008

Tentative Schedule

Week 1 Mon 1/7 Course introduction, x86 assembly
Wed 1/9 x86 assembly and memory management
PC Assembly Language, Paul A. Carter, November 2003 [SKIM]
"Brennan's Guide to Inline Assembly", Brennan "Bas" Underwood [SKIM]
Week 2 Mon 1/14 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
Wed 1/16 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 1/18
Lab 1 due, 11:59pm
Week 3 Mon 1/21 Martin Luther King, Jr. Day holiday
Wed 1/23 Virtual memory and virtual machines
"Virtual Memory Management in VMware ESX Server", Carl A. Waldspurger, Proc. 5th OSDI, Dec. 2002
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
Week 4 Mon 1/28 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
Wed 1/30 Kernel design: microkernels
"Improving IPC by Kernel Design", Jochen Liedtke, Proc. 14th SOSP, Dec. 1993, pp.175-188
Fri 2/1
Lab 2 due, 11:59pm
Week 5 Mon 2/4 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
Wed 2/6 Operating system bugs
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
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
"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
Fixing Device Drivers, a collection of research by Michael M. Swift's group
Week 6 Mon 2/11
Test 1
Wed 2/13 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 7 Mon 2/18 Presidents Day Holiday
Tue 2/19
Lab 3 due, 11:59pm
Wed 2/20 Network scheduling
"Lazy Receiver Processing (LRP): A Network Subsystem Architecture for Server Systems", Peter Druschel and Gaurav Banga, Proc. 2nd OSDI, Oct. 1996, pp.261-275
"Kqueue: A generic and scalable event notification facility", Jonathan Lemon, Proc. FREENIX Track: 2001 USENIX Annual Tech. Conf., June 2001, pp.141-154
Week 8 Mon 2/25 File systems
"TFS: A Transparent File System for Contributory Storage", James Cipar, Mark D. Corner, and Emery D. Berger, Proc. 5th USENIX Conf. on File System And Storage Technologies (FAST), Feb. 2007, pp.215-229
Wed 2/27 File systems II
"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
"Rethink the Sync", Edmund B. Nightingale, Kaushik Veeraraghavan, Peter M. Chen, and Jason Flinn, Proc. 7th OSDI, Nov. 2006, pp.1-14
Week 9 Mon 3/3 Distributed file systems
"Petal: Distributed Virtual Disks", Edward K. Lee and Chandramohan A. Thekkath, Proc. ASPLOS VII, Oct. 1996, pp.84-92
"Frangipani: A Scalable Distributed File System", Chandramohan A. Thekkath, Timothy Mann, and Edward K. Lee, Proc. 17th SOSP, Oct. 1997, pp.224-237
Lab 4 due, 11:59pm
Wed 3/5 Managing concurrency

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

"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

Here's an older article about implementing locks:

"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
"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
Week 10 Mon 3/10 Security
"Information Flow Control for Standard OS Abstractions", Maxwell Krohn, Alex Yip, Micah Brodsky, Natan Cliffer, M. Frans Kaashoek, Eddie Kohler, and Robert Morris, Proc. 21st SOSP, Oct. 2007, pp.321-334
Wed 3/12
Test 2
Finals Week Fri 3/21
Lab 5 due (no extensions)

Back to CS 235 Advanced Operating Systems, Winter 2008