Lab Tasks
On this page you find the Lab tasks accompanying the Operating-System Construction course. In addition to the task descriptions we also provide a Git repository with partial implementations that you should use as a basis for your own solutions. For many C++ classes, we only provide an empty class body that you must complete; other classes are fully implemented (mostly those that are complicated to implement, but actually do boring things).
You can find the template code in a (read-only) Git repository under this URL: https://os.inf.tu-dresden.de/Studium/OSC/SS2024/oostubs.git
Throughout the semester we will push a new commit for each task to this repository. Clone it (git clone https://os.inf.tu-dresden.de/Studium/OSC/SS2024/oostubs.git) and get the necessary changes for later tasks via git pull (see "Pro Git" for further documentation on Git).
In case you want to host your code on a public repository website like GitHub for collaboration within your team, please do this in a "private" repository.
# | Short Description | Start | Submission* | Git Tag |
---|---|---|---|---|
1 | Input/Output Functionality | 2024-04-09 | 2024-04-24 | task1 |
2 | Interrupt Handling | 2024-04-22 | 2024-05-08 | task2 |
3 | Interrupt Synchronization | 2024-05-06 | 2024-05-28 | task3 |
4 | Context Switching | 2024-05-23 | 2024-06-12 | task4 |
5 | Time-Slice Scheduling | 2024-06-04 | 2024-06-26 | task5 |
6 | Events and Synchronization | 2024-06-17 | 2024-07-10 | task6 |
7 | Applications for OOStuBS | 2024-06-27 | 2024-07-16 | task7 |
* You are encouraged to submit before the deadline during Lab hours, especially for the later tasks. This reduces our (and your) stress on the submission date, allows you to fix issues and resubmit if necessary, and gives you more time for preparing your custom task #7 submission.
In order to work on these tasks, you first need to get your development environment working. We also provide a collection of typical mistakes during OOStuBS development, and the symptoms they (may) come with [TODO]. If you encounter mysterious crashes, check this list, maybe it helps.
In case you need an additional challenge, starting with Lab task 3 we also provide template code for MPStuBS, an extension of OOStuBS for multi-processor systems. The accompanying template code can be found in the "mpstubs" branch of the Git repository. This template overwrites a few files; as it bases on solutions of already solved tasks, you definitely will see merge/rebase conflicts. One option to deal with these conflicts is to discard the respective local versions of the affected files.