This page is used to post suggested homework which can help better making experience with the course topics. The suggested homework is not mandatory for passing the examination. For each suggested homework a solution will be posted along with the "Software Examples" available via the course main page. Students are encouraged to provide their own solutions before checking with the posted one.
This homework deals with the implementation of a TLS support standing aside of the original one offered by gcc. It should be based on a few macros with the following meaning:
Essentially, the homework is tailored to implementing an interface for managing per-thread memory resembling the one offered by the Linux kernel for managing per-CPU memory.
This homework deals with the implementation of a Linux kernel subsystem dealing with thread management. The subsystem should implement a blocking FIFO-queuing service. It is based on two system calls 1) int goto_sleep(void) used to make a thread sleep at the tail of the queue and 2) int awake(void) used to awake the thread currently standing at the head of the queue. Threads could also be awaken in non-FIFO order because of Posix signals.