Fall 2014 :: CSE 506 - Operating Systems :: Section 2 (PhD)

  • 11/26: The final exam will be held on Tuesday, 12/09, 11:15am to 1:45pm in Humanities 2405.
  • 10/08: Presentation topics are available on the Assignments page.
  • 09/16: The class is relocated to Humanities 2045.
  • 09/15: Starting Tuesday, 09/16, PhD section meetings will be held in Heavy Engineering Lab 201.
  • 08/26: Until further notice, the PhD section will meet with the MSc section in Humanities 1006 at 8:30am.
  • 08/26: This is the PhD Section of CSE 506.


This is Section 2 of CSE 506 in Fall 2014. Enrolment in this section is restricted to PhD students. For the other section, see this page.

Course Description

This course is an in-depth study of important concepts and techniques found in modern computer operating systems. An undergraduate course in operating systems is a prerequisite. The course focuses on in-depth study of such important issues as virtual memory, file systems, networking, and multiprocessor support, with an eye to recent directions in these areas. Textbook readings are supplemented, where appropriate, by papers from the research literature. An important part of the course is the case study of an actual operating system. Students study the source code for this operating system, and do programming exercises and projects that involve modifying the operating system and measuring its performance.

Course Information

  • Time: Tu & Th 8:30 - 9:50 am.
  • Location: Humanities 2045.
  • Instructor: Nima Honarmand, Computer Science 1409, Office Hours: Tu & Th 10:00-11:30 am, or by appointment.
  • Teaching assistant: Yizheng Jiao, Computer Science 2110, Office Hours: Fr 9:00am-12;00 noon, or by appointment.
  • Course staff email: cs506ta _at_ cs.stonybrook.edu. This email is monitored by all course staff.
  • Newsgroup: on Piazza. This is the main venue for all class-related discussions. You will also use it for posting paper discussions (See below).

Course Format and Content

This course will consist of two parts. In Part 1, classical operating systems concepts are covered, using Linux as the concrete example, and students are expected to do programming assignments where they implement these concepts in an instructional operating system, called JOS.

In Part 2, we will introduce more advanced topics such as alternative operating system architectures or security issues in modern OSes. Paper reading and analysis will be an integral aspect of this component of the class. This part, therefore, serves two purposes: 1) to introduce students to some advanced issues that can be potentially useful in their PhD research, and 2) to improve paper reading skills that are essential to your success as a Ph.D. student.

Lab Assignments

Lab assignments are explained in detail here. There will be 5 assignments in Part 1 of the course.

Paper Reading and Discussions

Occasionally in Part 1, and frequently in Part 2, there will be reading assignments. For each assignment, students should read the paper and participate in the related discussion on the newsgroup. Participation is mandatory! Your postings can include

  • points that you learned from the paper (and not already pointed out by previous posts),
  • your questions, comments or critiques about the paper,
  • answers to the questions, comments or critiques made by your classmates,
  • or discussion of other pieces of work that are closely related to the subject being discussed.
These discussion will determine a substantial chunk of you final grade.

Final Project or Presentation

For your final project, you can either do a research project or a survey and presentation on one of the topics in Part 2 of the course. You can find more information about this here.


Students will be evaluated based on their performance in the following categories:

  • Lab assignments: 37% (Lab 1: 5%, Labs 2-5: 8% each)
  • Midterm exam: 20%
  • Final exam: 20%
  • Paper discussions and class participation: 18%
  • Final project or presentation: 15%
The above sum up to 110%. This means there are 10% extra points to help you get a better grade in the course.

Course References

There are no required textbooks for the class. Readings will be assigned as needed from materials that are available online or from the library. In addition, you can find a list of useful references and reading materials here.

The following books are useful references for this course. You can find them on amazon or other online book stores. Some are also available for free on campus through Safari online. Also, make sure to check the university library for hard or electronic copies of these and other books that you may need. If not already available, you can request the library to be purchase them.


Most of the materials for this class are based on Don Porter's offering of the course and some, through Don's work, come from Mike Walfish and Erez Zadok. JOS labs were developed by Operating Systems course staff at MIT and several other universities and significantly enhanced by Stony Brook TAs and students. I am very grateful to all these individuals.