CSCI 475

Operating Systems

One the most complex software systems ever assembled, the modern operating system serves as the interface between the human and the machine. This course traces how the simple idea of ``resource sharing'' unravels into some of the most confounding problems and original breakthroughs in computer science. Course topics include process and thread management, input/output, CPU scheduling, synchronization primitives, memory management, and file systems. Students taking this course learn how to deal with the intricacies of low-level programming, parallel computing and synchronization problems, and also receive kernel-development experience through the design and implementation of various subsystems in a real operating system. The C programming language is used for homework assignments and projects.

Prerequisites: CSCI 281 with a grade of C- or higher.