This class is directed at graduate students seeking a deeper understanding of operating systems. We will cover classical topics and algorithms from operating and distributed systems, and also look at recent trends in operating systems research. This class is particularly targeted at graduate students wanting to pursue systems research. Students are encouraged to submit topics that interest them for inclusion in the class.
The course format will be a mix of lectures, a semester-long project, and student presentations.
Students will complete a term project, which can either take the form of a programming project or a survey paper on a research area. Every student is required to give a final presentation for their project or paper.
Dr. Ali R. Butt
By appointment only
TR 2:00pm-3:15pm in MCB 230
Dec 17, 2:05PM to 4:05PM (usual classroom)
This class is offered to graduate students interested in systems research. We expect that you are familiar with basic operating systems ideas and principles, and that you have a proficient programming background (preferably in C).
We will be using the following book:
Operating Systems: Three Easy Pieces
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
For other reading:
Tanenbaum, van Steen. Distributed Systems: Principles and Paradigms. 2nd Edition.
Prentice Hall. ISBN-10: 0-132-39227-5
Silberschatz, Galvin, Gagne. Operating System Concepts. 7th Edition.
John Wiley & Sons, Inc. ISBN 0-471-69466-5
The course work consists of lectures, student presentations, programming projects, and class participation in the discussions.
Late Policy In lieu of a late policy, you will have four wildcards. That is, you may skip the class activities on four different dates without losing any credit. You need not ask for permission to do so in advance. However, you are still responsible for the material covered in class for the purposes of exams.
Project: The class includes a term-long programming project of your choice related to the topics covered in class. The term project can take multiple forms. For instance, your team may design, prototype, and evaluate a small system that solves a distributed programming problem. Or you may design a project that evaluates an existing system's suitability for a particular purpose. Or you may add an extension to a system like Linux. You are encouraged to come up with your own ideas for a project, or choose from a list provided by the instructor.
Students will submit a 2 page project proposal that should outline the project. The proposal should explain what problem you are addressing and the relevance of that problem. You should outline what infrastructure (software and/or hardware) you will be using for that project and how you expect to evaluate your results. You will need to define what deliverables your project will have. To ensure progress towards the completion of your project or paper, your team will meet with the instructor during certain milestones, which will be posted on the class website. Those meetings are mandatory for full credit on the project.
Final Presentation: All teams are required to do a final 20 minute presentation that summarizes the results of their survey paper or programming project.
A tentative grading distribution is as follows. It may change based on class discussions and complexity of projects undertaken by the class.
We will use 10-point grading scale which is listed below. Grading will be on a curve (including current students' data as well data from prior offerings of the class).
All work is conducted under the rules of the university Honor Code. This code and other relevant policies are described in detail on the class web pages.
For additional information about the Honor Code, please visit:
Students with Disabilities
If you need adaptations or accommodations because of a disability (learning disability, attention deficit disorder, psychological, or physical), if you have emergency medical information to share with the instructor, or if you need special arrangements in case the building must be evacuated, please meet with the instructor as soon as possible.
The syllabus page shows a table-oriented view of the course schedule, and the basics of course grading. You can add any other comments, notes, or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the "Edit" link at the top.