CS 736: Advanced Operating Systems
This course is intended to give you an in-depth exposure to advanced
operating systems topics.
There are two important components of this course: reading and discussion of
papers on operating system design, and a project involving implementation of an
experimental system. The research papers cover topics
including concurrency and threads, memory management, file systems, communications and networking, security and protection. The project requires you to
choose a problem, research and propose solutions, and implement a
During each class, we will discuss topics relevant to the current papers.
The lecture will not be a detailed review of the papers, but rather
a discussion of major topics and themes using the papers as a focal point.
Active participation in discussion is strongly encouraged.
Lecture: 1pm - 2:15pm, Monday and Wednesday, 1263 Computer Sciences
Office Hour: 2:00 - 3:00pm Tuesday; 7361 Computer Sciences
Our text is a selection of papers
on operating system design and implementation.
You can purchase these readings at the DoIT documentation desk.
The readings this semester is quite similar to that of fall 1997, but I still
encourage you to buy a copy of your own.
Although there is no exam in this course, there are an assignment,
a project, and weekly quizs.
The first assignment is using a benchmark suite to measure the performance
of various operating systems (SunOS, Solaris, Linux, Windows NT, etc., as many
as you can lay your hands on).
The second assignment is the project, involving a project proposal,
implementation, a final report, and a project presentation.
Of the total grade, the first assignment counts 20\%, quizs count 30\%,
and the project counts 50\%.
Here is a tentative schedule.
Here is a list of suggested projects.
You can make up your own project as well.
In either case, you need to discuss with me before choosing a project.
Teams of one, two or three persons are allowed.
Here are the slides I used in my lectures.
Here is the first assignment.