Operating Systems Labs
Lab given for distance course spring 99, TF spring 99, MNP fall 99, MNP spring 2000, distance course spring 2001, MNP spring 2001, distance course spring 2002, MNP spring 2003.

The lab is designed to be run on the system (DoCS). There are 3 lab sessions and the lab is divided into 3 parts: process management, process synchronisation, and file system. To run the lab on a Linux machine (or another unix based machine outside DoCS), you should get this package. To run the lab locally on DoCS, you will need this other package. The lab sessions are:

Useful help

Manual pages.
How to compile ps.gz/pdf.
How to handle command line arguments ps.gz/pdf.
C standard library (short) ps.gz/pdf.
How to handle errors ps.gz/pdf.
Slides from the course book (UNIX slides from the book "Operating System Concepts" by Silberschatz and Galvin).
A sample on how to create semaphores and shared memory.
The source of ipc-create available on /stud/kurs/os/process_synch/.
The source of pencils.c.
The C-source and C++ version of the simple shell presented at the lab introduction. For those who can not think in C, here is a special version in C++ with a Process class to be extended for your own processes. If you choose to use this class for exercise 3 of lab 1 or later , I expect good explanations on how it works. You may use this class in order to understand how fork() works, if it helps you. However, you are not allowed to use it for the exercise 2 of the first lab because you have to use fork() explicitely on your own, as described in exercise 2.