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.