Course Overview
This is an introductory course to operating systems research and systems research in general.
The course covers research papers published at top systems conferences. The students are expected to read and discuss several papers per week to obtain an overview of systems research and putting the papers into their historical contest.
During the course, the students will work together as teams to attempt to reproduce the results of published research papers and advance the state-of-the-art in systems research by conducting a small research project during the term.
Credit: This course is based on the Graduate Operating Systems course taught by Prof. Margo Seltzer
Learning Objectives
This course is a introduction to systems research where students will obtain an overview of systems research and its historic context. After completing this course, the students should be able to:
- Read systems papers critically.
- Explain how modern systems research fits into the historical context.
- Identify open research problems in systems.
- Write constructive paper reviews.
- Explain (in writing) a systems paper to a non-expert.
- Design a research project to address an open research problem.
- Carry out a research project and present results both orally and in writing.
Course Work and Prerequisites
The following is a high-level overview of the course prerequisites and the course work. Please see the details in the corresponding sections of this website.Prerequisites
The students should have completed an undergraduate systems course.
Coursework
During the course the students will complete the following course work either alone or as a team of two students.
- Reading, commenting on, and discussing classic and current research papers
- Act as discussion lead during the class
- One homework assignment
- Research project of your choice
- Mock Program Committee: reviewing your classmates' research papers
Readings
The readings fall into these main categories:
We will begin with an historical overview of operating systems, beginning with some of the earliest operating systems and ending with today's multi-core systems.
We'll then examine some current trends in operating systems by reading about virtual machine monitors and the rebirth of virtualization.
We'll touch on correctness aspects by including system verification approaches, and talk about emerging hardware technologies and how they are used in building systems.
Finally, we will cover topics where systems research has been informed by work in different communities such as theory, programming languages, and security.
Project
The course culminates with a research project, where students practice the art of systems research. There will be several deliverables on the way to a final project, including (but not limited to) a research statement, a research plan, an extended abstract, a final paper, and an oral presentation. At each stage of the process, the students can expect to receive feedback.