CPSC 508 Graduate Operating Systems
2022 Winter Term 1 (i.e., Fall 2022)

Tuesday/Thursday 9:30-11:00
ICCS 246

Home Syllabus Background Lecture Notes Piazza Group

ProfessorTeaching Assistants
Margo Seltzer Puneet Mehrotra Chris Chen
mseltzer@cs.ubc.ca puneet89@cs.ubc.ca cchen2@cs.ubc.ca
Office Hours: Tu 3:00 - 5:00 (or by appt) Office Hours: TBD Office Hours: TBD



An undergraduate operating systems course (e.g., CPSC 415).

Learning Objectives

This course is an introduction to systems research. After completing this course, you should be able to:

Coursework includes the following components:

The readings fall into five 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. Next, we will view storage and file system evolution over the past forty years, moving from local file systems to distributed storage to the cloud. Our study of storage systems will lead directly into distributed systems, where we will see how the earliest research laid the groundwork for today's cloud-based world. Finally, we will cover topics where systems research has been informed by work in different communities such as theory, programming languages, and security.

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, I will provide detailed feedback and suggestions.

Course Requirements

Course Policies

OS Project Links

If you have a favorite system or something interesting that you think should be included here, please let us know.