CS 571 Operating Systems (Spring 2022)

Reading List

OS Scheduling

Linux CFS Scheduler [The Linux Kernel documentation]

ghOSt: Fast & Flexible User-Space Delegation of Linux Scheduling [ACM SOSP 2021]

Memory Management and Caching

ARC: A Self-Tuning, Low Overhead Replacement Cache [USENIX FAST 2003]

Memory Resource Management in VMware ESX Server [USENIX OSDI 2002]

Concurrency and Synchronization

Cooperative Task Management Without Manual Stack Management [USENIX ATC 2002]

Concurrency Control and Recovery [Michael J. Franklin]

Concurrency is not parallelism [The Go Programming Language Blog]

Persistence

A fast file system for UNIX [ACM Transactions on Computer Systems, 1984]

The design and implementation of a log-structured file system [ACM SOSP 1991]

Dynamo: Amazon’s Highly Available Key-value Store [ACM SOSP 2007]

InfiniCache: Exploiting Ephemeral Serverless Functions to Build a Cost-Effective Memory Cache [USENIX FAST 2020]

The Case for Learned Index Structures [ACM SIGMOD 2018]

Virtual Machines and Containers

Xen and the art of virtualization [ACM SOSP 2003]

Firecracker: Lightweight Virtualization for Serverless Applications [USENIX NSDI 2020]

My VM is Lighter (and Safer) than your Container [ACM SOSP 2017]

Blending containers and virtual machines: a study of firecracker and gVisor [ACM VEE 2020]

The True Cost of Containing: A gVisor Case Study [USENIX HotStorage 2019]

Distributed Systems

MapReduce: Simplified Data Processing on Large Clusters [USENIX OSDI 2004]

The Google File System [ACM SOSP 2003]

Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing [USENIX NSDI 2012]

ZooKeeper: Wait-free coordination for Internet-scale systems [USENIX ATC 2010]