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.
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.
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 are explained in detail here. There will be 5 assignments in Part 1 of the course.
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
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:
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.