CS 240: Advanced Topics in Operating Systems

Spring 2011 -- Dawson Engler

Course Outline

This course makes no attempt to cover all the interesting topics in operating systems. Instead, we will cover a few topics in depth. The course is divided into the following general topic areas:

Virtual memory management
     Discussions of virtual memory management implementations and recent work in virtual memory for multiprocessors, NUMA machines, large virtual address spaces, and other topics.
Synchronization and communication
     Discussions of synchronization with an emphasis on monitors. Communication using remote procedure call.
File systems
     Discussions of file system interfaces and disk storage management techniques.
Protection and security
     Discussions of data security and authentication.
Extensions and fault tolerance
     Discussions of mechanisms for implementing OS services at user level, OS structure and performance, reliability and availability of OS services.
History and experience
     Historically important papers and experience reports by senior researchers in the field.

Tentative Reading List

There is no textbook for this course. The course is based on a collection of journal and conference papers that describe the history and state of the art in operating systems. Papers will be discussed in class in approximately the order that they appear on the reading list below. You must read the papers before class.

Introduction
March 29, Tuesday

Concurrency
March 31, Thursday
Eraser: A Dynamic Data Race Detector for Multithreaded Programs
Savage, Burrows, Nelson, Sobalvarro, and Anderson

April 5, Tuesday
April 7, Thursday
April 12, Tuesday
Cooperative Task Management without Manual Stack Management
Adya,Howell,Theimer,Bolosky,Douceur

Why Threads Are A Bad Idea
John Ousterhout

Why Events Are A Bad Idea
Behren,Condit,Brewer

Virtual Memory and Protection
April 14, Thursday
April 19, Tuesday
April 21, Thursday
Native Client: A Sandbox for Portable, Untrusted x86 Native Code Exploiting Native Client
Yee, Sehr, Dardyk, Chen, Muth, Ormandy, Okasaka, Narula, Fullagar

Exploiting Native Client Video: part 1 part 2 part 3
Ben Hawkes

Virtualization
April 26, Tuesday

Exam
April 28, Thursday
Midterm -- in class
solutions

Local File Systems
May 3, Tuesday
Generalized File System Dependencies (slides)
Frost, Mammarella, Kohler, de los Reyes, Hovsepian, Matsuoka, Zhang Annotated copy.

May 5, Thursday
Rethink the Sync (slides)
Nightingale, Veeraraghavan, Chen, Flinn Annotated copy.

Livelock
May 10, Tuesday

Remote File System
May 12, Thursday
May 17, Tuesday
A Low-Bandwidth Network File System
Muthitacharoen, Chen, and Mazieres Annotated copy.

MapReduce
May 19, Thursday

Misc
May 24, Tuesday

May 26, Thursday

Exam
May 31, Tuesday
Final -- in class