Professor | Teaching Assistants |
---|---|
Margo Seltzer | Vaas Anand |
ICCS 313 | vaastav@cs.ubc.ca |
mseltzer@cs.ubc.ca | Puneet Mehrotra |
http://www.seltzer.com/margo | puneet89@cs.ubc.ca |
604-822-6642 | ICCS X468 |
Office hours: |
Announcements
- Practice Quiz 3
- HotCRP web site for final projects
- Guy Steele's Brilliant talk on The Language of PL (starting at minute 38:20).
- The Piazza discussion about whether we should trust the compiler reminded me of this (very entertaining) paper. If you haven't read it, it's a real gem.
- Final Project Assignment is up!
- Practice Quiz 1
- A Farewell to Corby
- Machine Dependent Kernel Inventory
- Technology and Courage This is a great article to read every once in awhile, especially if you're doing research.
- Unix Family Tree
- Homework Assignment (1) is up!
Prerequisites
An undergraduate operating systems course (e.g., CPSC 415).Learning Objectives
This course is an introduction to operating systems research. After completing this course, you 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.
- Design a research project to address an open research problem.
- Carry out a research project and present results both orally and in writing.
Coursework includes the following components:
- Reading and discussing classic and current research papers.
- One homework assignment
- Three quizzes (each one-half class).
- Research project of your choice
- Mock Program Committee: reviewing your classmates' research papers.
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 operating 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
- 20% Class Participation (including piazza discussions)
- 15% Quizzes (three quizzes; 5% each)
- 15% Homework Assignment
- 50% Final Project
Course Policies
- No late work
- Projects should be completed in teams of 2-4 (the homework assignment may be completed independently or with a single partner).