Project

For the grade 3 on the lab part of the course, you must finish the mandatory tasks in assignment 1-3.

For the grade 4, do at least three of the optional tasks in assignment 1-3.

For the grade 5, you should also do a project of some sort. It should not be a large project. Come up with an idea and discuss it with the teacher. Here are some possible suggestions:

1. Download, compile and install the Linux kernel, and make some trivial change, such as whenever a user process tries to open a file called "foo.txt", the kernel instead opens the file "fum.txt". The Linux kernel is large, and just compiling it can take several hours, and finding the right place to make changes can also be a time-consuming process, but gives enough insights that this is sufficient as a project. (You need more disk than in the virtual machines for the book.)

2. The 9th Edition of the Silberschatz book says that on modern hardware, cache coherency issues between multiple processor kernels can cause communication between processes using shared memory to be slower than message passing through the kernel. ("Recent research on systems with several processing cores indicates that message passing provides better performance than shared memory on such systems. Shared memory suffers from cache coherency issues, which arise because shared data migrate among the several caches.") If you have access to a modern computer with several processor cores, run some tests and measure times to see which method seems to be faster. (If you know or are willing to learn how to do shared memory and message queues in Windows or Mac OS X, you can use one of those. Mac OS X is Unix, so it is very similar to Linux.)


Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se), 14 april 2020