Operating Systems Design and Implementation

~~ University of British Columbia | 2021-W2 ~~

Dr. Reto Achermann

Assistants: Bingyao "Jerry" Wang

Home Operations Project Schedule Tutorials Honesty Code Submission Piazza


The lectures and labs are designed around the class project. They are designed to help the students to succeed in completing each milestone and the entire project as a whole.


Monday / Wednesday / Friday 4-6pm.
Sounds like a lot, but most of the times the students will be able to work on the project. A typical week consists of 3x two-hour slots that roughly divide into the following main categories:

Lecture: (e.g, Monday): During a lecture slot, we will cover the necessary background information, present an overview of the up-coming milestone, and provide hints and tips for the next project milestone.The students are expected to have at least looked at the next milestone. The students are encouraged to ask questions regarding the project during lectures.
Presence is strongly encouraged.

Lab: Project Q&A: (e.g., Wednesday) This is a office-hours like lab session, with tutorials in the beginning. Course staff will be present to answer project related questions. During this slot, the students are expected to meet with their team and work on the project.
Presence is encouraged.

Tutorials: (e.g., Wednesday) This is similar to the Lab sessions; but we'll have a short tutorial with some additional information that may be useful for the project. The remainder of the session will be available to work on the project and ask questions.
Presence is encouraged.

Milestone demonstrations: (e.g., Friday) During this slot the students will present and explain their milestone solutions to the course staff (see here for more details).
Presence is required.

Office hours: Primarily during "Lab: Project Q&A", additional office hours by appointment.


Presentations are during the normal lab hours. Hand in of code until 23:59:59 on the same day. (See instructions)

The final presentation will take place during the examination session. The students are strongly encouraged to finish their project work before the examination session starts. The students may submit updates to their submission until the final hand-in.

Week Dates Monday Wednesday Friday
1 Jan 10--Jan 14 Lecture: Introduction Tutorial: Setup of the Environment Tutorial: Barrelfish and Tools
2 Jan 17--Jan 21 Milestone 0 Presentations (Intro) Lecture: Capabilities Waitlist Decision Lecture: Memory Management
3 Jan 24--Jan 2 Tutorial: Capability Operations Tutorial: Debugging Capabilities & Tracing Lecture: Processes
4 Jan 31--Feb 4 Lab: Project Q&A
Team forming deadline
Milestone 1 Presentations (Memory Management) Tutorial: Managing foreign CSpaces
5 Feb 7--Feb 11 Tutorial: Managing foreign VSpace Tutorial: Managing foreign Dispatchers Lab Q&A
6 Feb 14--Feb 18 Lecture: LRPC, IPC, Upcalls Milestone 2 Presentation (Processes) Tutorial: LMP
7 Feb 21--Feb 25 READING WEEK
8 Feb 28--Mar 4 Lecture: Virtual Memory / Paging Milestone 3 Presentation (IPC) Tutorial: Heap
9 Mar 7--Mar 11 Lecture: Booting Cores Milestone 4 Presentation (Virtual Memory) Lab: Project Q&A
10 Mar 14--Mar 18 Lecture: User-level message passing Milestone 5 Presentation (Multicore) Lab: Project Q&A
11 Mar 21--Mar 25 Lecture: Individual Milestones Overview
Last milestone assignment deadline
Milestone 6 Presentation (UMP) Lab: Project Q&A
12 Mar 28--Apr 1 Lecture: NUMA Systems Lab: Project Q&A Lab: Project Q&A
13 Apr 4--Apr 8 Lecture: System Verification Lab: Project Q&A Milestone 7 (soft) hand-in (Individual)
14 Apr 12--Apr 15 Examination Session
15 Apr 18--Apr 22 Examination Session
Wed April 20 | 23:59 - Final hand-in (hard deadline)
Thu   April 21 | 15:30 - Final presentation
17 Apr 25--Apr 29 -- -- Hardware Kit Return Deadline, Friday, April 29, 18:00