A study of operating system concepts and how those concepts are used in the design and implementation of modern operating systems. Topics include process management, processor scheduling, memory management, virtual memory, I/O, file systems, deadlocks, and concurrency. Prerequisites: CS 222, MA 120 or MA 125. SP.