CS 45 Operating Systems

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.

Course Webpages:

Current or most recent offering: CS45: Spring 2014
 
Past offerings: Fall'11 (predates CS31 as a prereq), Fall'08, Fall'07, Fall'05, Fall'03, Fall'01, Fall'99