Course Outline:

This course covers advanced operating system concepts for undergraduate students or for beginning graduate students with a deficiency in operating systems. CS 3431 or an equivalent course is a necessary prerequisite for CS 4431, since this course assumes that students are quite familiar with the basic concepts introduced in CS 3431. As a result, this course can build on the material covered in CS 3431 and apply this knowledge to the indepth study of uniprocessor, parallel and distributed operating systems. In addition, this course includes substantial project work, involving the construction of distributed and parallel OS functionality on parallel and cluster machines.

The project component is significant, and an excellent knowledge of C programming is essential for completing the projects. There will be three projects: the first is one to get you familiar with Cthreads and will involve writing a program for a simple synchronization problem using Cthreads; the second one will involve writing a multithreaded server that interacts with clients on the same node. The third project will involve developing a distributed application with a server and multiple clients.