Labs mostly revolve around assignments in which you will write a simple but working operating system. The lab sessions are held in a lecture room (instead of a computer lab) and are intended for discussion about past, ongoing and upcoming assignments.

Whenever a new assignment is published, you are expected to familiarize yourself with the assignment so that we can focus on particular problems or pitfalls.

Even though the initial (individual) assignments are fairly simple, the team assignments will get gradually more difficult. Part of the complexity is due to the cumulative nature of the assignments — your solution to a particular assignment will be built on top of previous assignments.

Because you will have to live with your code for most of the semester, you should strive to make the code readable and easy to understand. To this end, pay attention to use of higher-level abstractions, functional decomposition, and proper naming.

Assignments

The following table lists the assignments that you will need to complete, along with the deadlines. The download information refers to a directory in the individual or team repository in which you will find the assignment specification and skeleton implementation.

In general, you should start working on each assignment as soon as possible. If you discover the difficult parts early on, there is time to discuss them within the team and during the lab sessions. This is much more difficult to do few hours before deadline. Use the calendar on the schedule page to keep track of the assignment deadlines and plan your work accordingly.

Date Title Downloads
2022-09-26 - 2022-10-09 A00: C language refresher student / a00-c-language
2022-10-03 - 2022-10-16 A01: Introduction to kernel student / a01-kernel-intro
2022-10-17 - 2022-11-06 A02: Kernel memory management team / README-a02.md
2022-10-31 - 2022-11-20 A03: Cooperative scheduler and threads team / README-a03.md
2022-11-14 - 2022-12-11 A04: Preemptive scheduler and synchronization team / README-a04.md
2022-12-05 - 2023-01-08 A05: Virtual memory management team / README-a05.md
2022-12-19 - 2023-01-22 A06: Userspace team / README-a06.md

Videos

For some of the assignments, a short video is available to help with the first steps. These can be found in a Sharepoint folder that you can access using the information system (SIS) credentials.

Manuals

Miscellaneous