CS-736: Advanced Operating Systems


University of Wisconsin, Madison
Department of Computer Sciences
Spring 2005

Basic Information

When: Tuesday and Thursday from 1:00pm to 2:15 pm
Where: 1207 Computer Sciences ( timetable entry )
Who: Professor Remzi Arpaci-Dusseau
Office Hours: By appointment (just send email or you could chance stopping by)

Notes

The Final Assignment: Click here.

Final Exam: Thursday (5/5) at 7pm in 1325 CS. Bring up to two cheat sheets! (e.g., your old one and a new one). Topics covered: everything.

Old Notes

Short Cuts

Reading list , auxiliary reading , advice papers
Reading questions
Project List

Overview

Welcome to graduate operating systems! This course will cover an exciting range of materials from the broad field of operating systems, including basic operating system structure, file systems and storage servers, memory management techniques, process scheduling and resource management, threads, distributed and peer-to-peer systems, security and a few other "hot" topics. We will examine influential historical systems and important current efforts, extracting lessons both on how to build systems as well as how to evaluate them.

The course will center around three basic entities: readings, assignments, and a final project. For most every class, you will have to read one or more papers (as assigned), which we will then discuss in class. You will also have to think and write a little bit about each paper. During the first half of the semester, you will also have to perform a few mini-assignments, just to get warmed up for the project. Then, finally, you will work on your projects, which is the real key to the class: a mini-research project on the topic of your choice. Though we will provide some suggestions, you are encouraged to come up with a topic of your own (after all, that is what research is all about). More details will be available below in the weeks to come.

1/18 First class: Show up 1/20 THE and Nucleus
1/25 Hydra 1/27 Exo(1) and Exo(2)
2/1 Disco 2/3 Nooks
2/8 FFS 2/10 LFS
2/15 IO-Lite 2/17 Anticipatory
2/22 RAID 2/24 D-GRAID
3/1 Monitors and Mesa 3/3 Lottery
3/8 Resource Containers 3/10 Scheduler Activations
3/15 Vax/VMS 3/17 Multics
3/22 Spring Break 3/24 Spring Break
3/29 Vmware 3/31 RPC
4/5 Locus 4/7 TACC
4/12 NFS 4/14 AFS
4/19 Coda 4/21 PAST
4/26 Measurements 4/28 Authentication and Kerberos
5/3 Final Presentations 5/5 Class wrap-up and Final Exam

Readings

The current Reading List is available here. All of the readings are available on-line. Note that you shouldn't read too far ahead, as the list may change during the semester.

Some additional papers are available in the Auxiliary Reading List. You are not required to read these, but there are many excellent papers in the list which are certainly worth reading at some point.

Finally, a collection of advice papers is available in the Advice Papers List. I highly recommend that you read these papers on your own; however, you will not be held responsible for them.

You will have three basic responsibilities for the readings covered in the course:

1 - Read the assigned discussion papers before class. This is a must!

2 - Form a discussion group. You should have about four people in your group, and discuss each paper sometime before class meets. When you have formed a group, please send me email with a list of group members.

3 - Answer the question posed for each paper. Your individual write-up should consist of a short-essay answer to the question(s) posed. The write-up should not exceed half of a page in length. The list of questions to answer is available here. Turn in your write up via email to me (remzi@cs) before 10am on the day of the class where we discuss the paper, with the class and date in the subject line (e.g., 736 Reading 9/12). Late write-ups will automatically receive a null score. Write-ups should be in plain text and not some fancy encoding, for the professor's viewing pleasure. Write-ups not in plain text will be returned to the sender ungraded.

The reading load will be heavy, so make sure not to fall behind.

Project

The project list is not yet available.

The final project is the main focus of the course. You are expected to perform work which could eventually be suitable for publication in a major operating systems conference; indeed, each year one or two projects end up becoming published works in some major OS conference! In general, people should work in groups of size one or two -- I will not allow groups larger than that. I will provide some suggestions for you to pick from, although you are encouraged to think of a project on your own, which I can then help to refine. Project write-ups will be similar in format to a conference submission, and all will be entered into a class-wide mini-conference. The best papers will receive some kind of recognition. More details are forthcoming.

Here are links to some previous class projects: Spring 2000 :: Fall 2000 :: Fall 2002 :: Fall 2003

Exams

There will be a midterm and a final to test if you've really been paying attention. The exams will be closed book, and will cover the papers read to date, as well as topics discussed in class.

Midterm Exam: Monday, 3/14 at 7pm in 1221 CS.
Final Exam: Thursday, 5/5 at 7pm in 1325 CS.

Assignments

In addition to reading, exams, and your final project, there will be a few assignments to get each of you a little more hands on experience with operating systems, experimental procedure, and so forth. Stay tuned for details.
Assignment #0: Digital Picture/Reading Group (due 1/25)
Assignment #1: The Art of Measurement is now available (due 2/15)
Assignment #2: Project Proposal (due 3/10)
Assignment #3: Project Status (due 4/7)
Assignment #4: Project Status (due 4/22)
Assignment #5: Project Status (due 4/29)
Assignment #6: Project Presentation (due 5/3)
The Final Write-up (due 5/10)

Grading

A rough outline of grading is: reading and other assignments (1/3), exams (1/3), and final project (1/3). However, this rough breakdown is subject to change at the whim of the professor.

Mailing List

There will be a mailing list. More information soon.

Complaints about file systems, disk technology, and unfinished symphonies should be sent to Remzi Arpaci-Dusseau.