This course is a introduction to the theory, design, and implementation of
operating systems. An operating system is the software layer between users
and the computer hardware. It implements
abstractions that are easier to program than the underlying hardware
(e.g. processes, virtual memory, file systems), and it manages the
machine's resources (e.g. memory, cpus, disk, network interfaces,
and other devices).
We will cover the following topics: processes (including synchronization,
communication, and scheduling),
memory (main memory allocation strategies, virtual memory, and page
replacement policies), file systems (including naming and implementation
issues), I/O (including devices, drivers, SSDs and disks, and disk scheduling),
protection and security, distributed systems and other advanced topics.
Prerequisites: CPSC 35 and CPSC 31 required.
Current or most recent offering: CS45: Spring 2014
Past offerings: Fall'11
(predates CS31 as a prereq), Fall'08