Woody Allen said that time was nature's way of keeping everything from happening at once. An operating system is how we keep different processes running on a machine from happening at once.

In this course, we will study concurrent processes, process communication, input/output devices, memory management, resource allocation and scheduling, and alternative file system implementations. There will be a mix of theoretical work, and practical examination of the source code for Minix, a working operating system that students will study and modify in a series of small projects.


Prerequisites: CS 102 (or concurrently), CS 202
Suggested course(s) to take next: CS 311, CS 312