Table of Contents
Project 1: User Programs
Final results are due Monday, April 21 2025, 11:59 pm Central Time. The design document is due Monday, March 10 2025, 11.59 pm Central Time.
Submissions handed in by the due date receive a small on-time bonus.
All students are granted a pre-approved extension or “grace period” of 24 hours after the due dates. Late submissions are accepted during the grace period with no penalty.
The grace period expires Tuesday, April 22 2025, 11:59 pm Central Time (March 11 2025, 11.59pm CT for the design document), after which no further late submissions are accepted (or are even possible).
This project is a group homework for four students (in exceptional cases three students).
Project Overview
Welcome to Project 1 focussing on PintOS user programs! After completing Project 0, you are probably left with a lot of questions on how PintOS works in general and the validity of the “fix” you implemented. Don’t worry. This project will have you implement some core functionalities such as argument passing as well as essential syscalls and floating point operations that will fill in some holes from Project 0.
In this project you will learn even more about some of the basics of PintOS, such as debugging, and you will be given an opportunity to add missing functionalities to PintOS. This project is meant to give you a deeper understanding on how PintOS is structured and how to use some general debugging tools.
The details of this assignment can be found in the sections linked below. This will likely help you understand the required tasks. Even if you read through some of these during Project 0, we recommend (re)reading through the following sections of the PintOS documentation:
Additionally, we suggest you go over the Study Guides OS Fundamentals and I/O, trying to answer all the questions. This may be a good strategy to get started quickly.
This project is the first milestone in a series of group projects designed to be worked on by four students. You are allowed - and moreover required and encouraged - to collaborate inside your group on all parts of the project.
The group projects are designed to incrementally implement more features in PintOS such that any follow-on project will rely on the previous projects being finalized properly.
Project Tasks
Here is a list of documents that we suggest you read before working on things. This will help to minimize the time you spend on every step between setting up your environment and submitting your work.