Operating Systems — Saarland University
Winter 2019

[ overview | lectures | project | assignments | textbook | grading | Moodle ]

Class Project

The project is to implement a simple operating system (based on the Pintos system from Stanford University). The project has four stages:

  1. threads and synchronization,
  2. user programs,
  3. virtual memory, and
  4. filing services.

Each stage builds on services that students implemented in previous stages of the project.

To make it possible to complete the project in one semester, some code is provided that implements a subset of the required functionality. Students are required to make major extensions to the existing design and implementation, adding missing functionality and improving performance. In stages 2, 3, and 4, students are also required to evaluate their design choices experimentally.

The projects will require a substantial amount of software design and implementation. The software produced will be graded based on its ability to successfully pass a set of functional and performance tests. In project stage 1, there will be an additional code review.

Project Teams

Students are required to work on the projects in small teams of two students. It is the responsibility of the students to form and manage their own teams. We do not allow individual project solutions. If your teammate drops the course you must immediately find a replacement, irrespectively of the current project stage. If you have difficulty in finding a replacement please contact the course staff and we will assign you one.

All team members must be involved in all aspects of the project. To collaborate effectively, team members should divide the project responsibilities so that they can work in parallel. However, each member is responsible for, and should be familiar with, all the work done by the team.

Proper time management is critical — if you don’t start working on the assignments early, you will not be able to complete the projects!

Honor Code

It is acceptable to discuss ideas, algorithms, or approaches to solving problems and assignments with other students. We encourage you to give and receive such advice as it will help you learn the material better and improve your ability to work in a team. In particular, please initiate and join discussions on Moodle. However, what you submit must be the work of your own group; copying code or solution sets from any source — including but not limited to Stack Exchange, Github, project solutions from prior iterations of this course, etc. — is strictly prohibited.

Project Submissions

Deadline: Projects must be submitted by 11:59 PM on their due dates (posted on this website, see the course schedule).

Late Submissions

We will apply a flexible slip date policy for late submissions. Each student is allocated an automatic extension of 4 calendar days for the entire semester. Students can use the extension on any project during the semester in increments of one day. For instance, you can hand in one project assignment 4 days late, or one assignment 2 days late and two assignments 1 day late. This extension is to be used for incidental occurrences, so please do not ask us for any extensions due to any incidental circumstances.

In case a student works with different teams throughout the semester, the slip time will be deducted from each team member’s remaining slip time.

Students will not receive credit for late submissions beyond the automatic extensions.