CPS 210: Operating Systems
home calendar topics work resources

The classical view and the future

The course introduction touches on the classical operating systems view of isolated processes and a protected kernel that virtualizes system resources. We illustrate some issues in naming, layering, modularity, and abstraction by reviewing naming and translation structures in file systems and networking. We also discuss how the core concepts of operating systems reflect in a broader set of contexts, and how the research focus of "systems" has changed through time.

This year we will start with a quick tour through classical operating system kernel structure and internals, focusing on the theme from Unix to Mach to Mac OS X.


Threads and concurrency

We won't spend a lot of class time on concurrency races and synchronization, but you should be familiar with the problem and the programming tools to address it, and related topics such as deadlock. You can refer to these notes on concurrency for background readings and sample problems. The class discussion will focus on two research papers on dynamic race detection, published in the flagship SOSP conference a decade apart.

Scheduling, resource sharing, and isolation


Kernel structure, extensibility, and protection


Virtual Machinery and Secure Platform Virtualization


Server Structure and Performance


Storage

The core material for CPS 210 includes basic storage abstractions (blocks vs. files), RAID concepts and tradeoffs for major categories of RAID block storage (RAID-0, RAID-1, RAID-4, RAID-5), basic file system internals and structures (directories, inodes/vnodes, links and reference counting, mountable file systems, filesystem types, filesystem switch, block maps), disk performance properties and block placement, file system layout (log-structured, clusters, cylinders and groups, sequential access), reliability and metadata management (synchronous writes vs. logging), network file systems and caching.

Distributed Systems


Some papers we did not get to