Explores modern operating system design, including operating
characteristics, user services, and limitations. Covers
(i) implementation techniques for handling interrupts and processing
device input-output, (ii) the overall structure of multiprogramming or
multiprocessor configurations, (iii) details of CPU scheduling, process/thread
synchronization, and deadlock, (iv) organization of physical and virtual
memory, (v) file-system design and management, and (vi) security.
Prerequisites: Programming III (CS258), and Unix and C (CS275).
Data Structures (CS411) is recommended.