This repository contains material required to complete exercises for the OS lab, including exercise sheets and their associated materials.
Exc | Topic |
---|---|
1 | Shell scripting |
2 | Scheduling (P&P) |
3 | Processes, signals |
4 | FIFOs, pipes & message queues |
5 | Shared memory & semaphores |
6 | Threads, mutexes, deadlocks |
7 | Spinlocks, cond vars, atomics |
8 | Scheduling simulator |
9 | Membench, best-fit allocator |
10 | Free list allocator |
All programming exercise solutions you hand in must compile properly on the lab computers. The easiest way of ensuring this is by either developing your solutions on a lab computer directly (outside of course hours), or by connecting to ZID-GPL via SSH.
Note that the default version of the GCC compiler present on lab computers is
extremely outdated. You may load a never version by calling module load gcc/9.2.0
.
All programming exercises are conducted in C.
Your code should always compile without warnings, when passing the flags -Wall -Wextra -Werror -std=gnu11
.
Make sure your code is properly
formatted using either your IDE/Text editor of choice, or by using a tool
such as clang-format
.
Try to write self-documenting code by choosing descriptive variable and
function names. While you may want to add comments to certain sections of
your code, try to avoid trivial comments such as fopen(...); // open file
.
All names and comments should be written in English.
Finally, all submitted code must be accompanied by a GNU Makefile. That
is, your solution must be able to be compiled with a single call to make
.
For some more specific topics such as proper error handling, check out our Frequently Asked Questions (FAQ).