Advanced topics in the design and implementation of modern computer operating systems, especially those which support a distributed computer environment. Topics include: synchronization, mutual exclusion, language support, process and thread management, scheduling, remote procedure call, fault tolerance, network and parallel file systems, security, modeling and performance.
This course is an introduction to the fundamental concepts and current research topics related to operating systems. When you conduct research in any area, you must understand the background material, be able to assess other research, present your ideas, and be able to write convincingly about your own work. For those students who plan on going on into systems research, this course should give you the background needed to read papers in your area. For those going on to other fields, this course should provide the needed breadth of systems knowledge.
Because this is a research course, we will spend the semester reading and discussing important papers on various topics in the field. Every student is expected to read all of the papers. Each student will present one paper during the course of the semester. Each student will work on a semester-long project related to one of the topics in this course, and present the results in a poster at the conclusion of the course.
An undergraduate course on operating systems, or equivalent knowledge, is a prerequisite for this course. Very little time is spent reviewing background knowledge, and you are expected to come to each class prepared to discuss that day's paper(s). Students who are unsure of whether they have sufficient background are welcome to contact the instructor.
In most classes before the presentation, a quiz will be given to
students to test whether the paper has been read. The quiz questions
are similar to the questions for midterm and final exams, but easier.
For example, I may ask you to explain a concept or a figure. If you
have read the paper, you should be able to answer those
After a quiz, a student will give a presentation for the day's paper(s). Questions may be asked during the presentation, but the presentation should be 40~50 minutes if no questions asked. Presentations may be made using transparencies or a laptop. The department has a laptop that can be borrowed for those who do not have their own.
This class aims to prepare a student to learn how to read papers.
Therefore, the presenter is expected to fully understand the presented
paper, know almost every detail of the presented paper. Since other
students also read the paper, they may ask questions and I will ask
questions as well. How well the presenter answers questions will
account for the partial credit received for the presentation.
The elements of a presentation include the main ideas
of the paper, background or related work, a critique of the paper, and
analysis of the lessons to be gained from the paper.
If you're not using powerpoint (which has an easy way of making landscape 4-up slides in page setup) or a mac (which lets you change page layout in the regular print dialog), you can still get nice slide handouts by doing something like:
which will take a pdf of single page slides in landscape mode and make a nice 4-up handout that reads in the normal column order. Depending on how you produce your slides, you may need to replace the -f with -l or -r, but -f will work for most of the standard possibilities.
Each student will conduct an independent project over the course of
the semester. You will be provided with a list of possible topics, but
are encouraged to design your own. No two students will perform the
same project. You will write a project proposal and a mid-term progress
report. The final report will become a paper.
Time will be scheduled for in-class midterm and final exams. The exam questions are similar to quiz questions, but requires you to udnerstand the papers deeper. To do well in your exams, you are encouraged to ask questions in class to ensure your full understanding of the papers.
Your grade in the course will be assigned using the following weights:
You must pass both the final exam and the project to earn a grade of B- or above.
There is no official textbook required for the course, although students should have a textbook such as Silberschatz, Galvin, and Gagne, "Operating Systems Concepts," 7th edition (available in the bookstore).
PDFs for the papers for class are available online. These are only accessible from on campus, although you can log onto your CS account and copy them out of my directory. Also, copies of most of these papers can be found online or by accessing the library's collection.
All classes at William and Mary are conducted under the Honor System, as described in the student handbook. You are responsible for reading and understanding the honor code. In particular; lying, cheating, and stealing are unacceptable conduct in this course. All assignments are individual, unless specified otherwise. For the purposes of this course, you may discuss the papers, but the presentations you make must be entirely your own work. If you use other sources in your presentations or writings, you must give credit to your sources. You may not provide or accept assistance on the exams or for the development of presentations or your project; however scholarly cooperative critiquing of other students' presentations or writings prior to submission or presentation is acceptable and encouraged.