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

Interviewer: Is studying computer science the best way to prepare to be a programmer?
Bill Gates: No, the best way to prepare is to write programs, and to study great programs that other people have written. In my case, I went to the garbage cans at the Computer Science Center and I fished out listings of their operating system.

The difference between practice and theory is greater in practice than it is in theory.
-- Prof. Parker