CS-736: Advanced Operating Systems


University of Wisconsin, Madison
Department of Computer Sciences
Spring 2000

Basic Information

When: MWF, 2:30-3:45 (will usually only meet twice a week)
Where: 101 Psychology
Who: Professor Remzi Arpaci-Dusseau and TA Kiran Chitluri
Office Hours: Remzi is available Tuseday at 2-3pm and Thursday at 11am-Noon in 7357 CS&S, or by appointment. Kiran's office hours are Tuesday at 10-11am and Friday 9-10am in 1306 CS&S.

Notes

5/14: The official OS-DIE conference page is now on-line! Papers are in no particular order.

5/12: Class is over (except for your final project write-ups)

Old Notes

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 systems, security and a few other "hot" topics. We will examine influential historical systems, important current efforts, extracting lessons both on how to build systems as well as how to evaluate them.

The course will center around two basic entities: readings 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 write a little review of each paper. The real key to the class will be your final project: a mini-research project on the topic of your choice. Though we will provide some suggestions, you are strongly encouraged to come up with a topic of your own (after all, that's what research is all about). More details will be available below in the weeks to come.

Schedule

We will meet WF at 2:30-3:45. However, I reserve the right to have class on Monday, so keep that time slot open. The readings schedule is below; for papers not available on-line, I will hand them out in class, and try to keep extra copies outside of my door.

Mondays

1/24 Brief Meeting
1/31 No Class
2/07 No Class
2/14 No Class (A#0 due)
2/21 No Class
2/28 No Class
3/06 Midterm Review
3/13 Spring Break
3/20 No Class
3/27 No Class
4/03 No Class
4/10 No Class
4/17 A#2: Project checkup due
4/24 TBA
5/01 A#3: Project presentation due
5/08 TBA

Wednesdays

1/26 Nucleus, The THE
2/02 Pilot, Optimistic Incremental
2/09 Impact of Structure
2/16 LFS, RAID
2/23 Lottery, Resource Containers (A#1 due)
3/01 Vax/VMS, Mach
3/08 Midterm Exam
3/15 Spring Break
3/22 RPC
3/29 Cluster-based...
4/05 NFS
4/12 Measurement of...
4/19 Implicit
4/26 Data Security
5/03 No class
5/10 The Final Lecture

Fridays

1/28 Hydra, Unix
2/04 Disco
2/11 FFS
2/18 AutoRAID
2/25 Sched Activations
3/03 Multics VM
3/10 TBA
3/17 Spring Break
3/24 U-net
3/31 Locus
4/07 AFS
4/14 Coda
4/21 No class - work on project
4/28 Encryption
5/05 All-star Presentations
5/12 A#4: Project Write-up due

Readings

The current Reading List is available here. Most of the readings are available on-line; those that are not will be handed out in class.

Some additional papers are available in the Auxiliary Reading List. You are not expected to read these unless you wish to learn more about a specific topic.

Finally, a collection of advice papers is (partly) 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 in any way. I will try to make all of these available electronically.

You will have three basic responsibilities for the readings covered in the course:
1 - Read the assigned papers before class. Without doing so, discussion is a little more difficult.
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 - Write-up each paper. Your individual write-up should consist of three aspects of the paper you found to be most interesting, and also at least one aspect of the paper which you found to be least satisfying (a criticism). The write-up should not exceed half of a page in length. The write-up should focus on the content of the paper, not the quality of the writing.

Readings will probably be heavy up front, so make sure not to fall behind. That way, you will have more time towards to end of the semester to focus on your project.

Project

The Project List is available!

A project resources page is also 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. In general, people should work in groups of two, though perhaps, for exceptionally difficult projects, three could be allowed. Though we will provide some suggestions for you to pick from, you are encouraged to think of a project on your own, which we can 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 three papers will be presented to the class. More details are forthcoming.

Important Dates
Project Proposal
Status Meeting
Talk
Write-up (Call for Papers)
2/23
4/17
5/1
5/12

Here are links to some previous class's projects: Bart Miller's and Marvin Solomon's.

Exams

There will be one or two exams to test your knowledge. The exams will be closed book, and will cover the papers read to date, as well as topics discussed in class.

Assignments

In addition to reading, exams, and your final project, there may be one or two assignments to get each of you a little more hands on experience with operating systems, experimental procedure, and professional duties such as paper reviewing. Stay tuned for details.

Assignment #0: Digital Picture
Assignment #1: Project Proposal
Assignment #2: Status Meeting
Assignment #3: Project Talk
Assignment #4: Project Write-up (Call for Papers)

Grading

A rough outline of grading is: reading and other assignments (25%), exams (25%), and final project (50%). However, this rough breakdown is subject to change.

Mailing List

The mailing list is cs736-1list@cs.wisc.edu. I will use it for general postings. A log of email is available at this url.

Useful Links

Here are some Random potentially useful links.


Complaints about this page or operating systems in general should be sent to Remzi Arpaci-Dusseau.