CS261 Course Syllabus

Week

Date Topic Reading and Assignments
1 9/3 Course IntroductionNone
2 9/8 The Beginning of Timesharing Corbató: An Experimental Time-Sharing System
Dijkstra: The Structure of the "THE" Multiprogramming System
9/10Early Virtual Memory Kilburn: One Level Storage System
Daley: Virtual Memory, Processes, and Sharing in MULTICS
3 9/15 Later Virtual Memory Rashid: From RIG to Accent to Mach: The Evolution of a Network Operating System
Leidtke: On micro-kernel Construction
9/17 Multi-processors Then and Now Tucker: Process Control and Scheduling Issues for Multiprogrammed Shared-Memory Multiprocessors
Baumann: The Multikernel: A New OS Architecture for Scalable Multicore Systems
4 9/22 Introduction to Virtual Machines Assignment 1 due MONDAY, September 21 at 5:00 PM

Rosenblum: The Reincarnation of Virtual Machines
Creasy: The Origin of the VM/370 Time-Sharing System
Bugnion: Disco: running commodity operating systems on scalable multiprocessors

9/24 Virtual Machine Commercialization Waldspurger: Memory Resource Management in VMware ESX Server
Barham: Xen and the Art of Virtualization
5 9/29 The Virtual Machine Debate Hand: Are Virtual Machine Monitors Microkernels Done Right?
Heiser: Are Virtual-Machine Monitors Microkernels Done Right?
Roscoe: Hype and Virtue
10/1 Quiz and Origins of Journalling File Systems Quiz #1:History and Virtual Machines
Hagmann: Reimplementing the Cedar File System Using Logging and Group Commit
6 10/6 Network File Systems Project Proposal and Research Plan due
Sandberg: Design and Implementation of the Sun Network Filesystem
Howard: Scale and Performance in a Distributed File System
10/8 File Systems and Semantics Gifford: Semantic File Systems
Salmon: Perspective: Semantic Data Management for the Home
7 10/13 File System Dependencies Project Meetings this week
Frost: Generalized File System Dependencies
Muniswamy-Reddy: Layering in Provenance Systems
10/15 Parallel Storage Systems Welch: Scalable Performance of the Panasas Parallel File System
Eisler: Data ONTAP GX: A Scalable Storage Cluster
8 10/20 Data at Scale Ghemewat: The Google File System
Schroeder: Disk Failures in the Real World: What Does an MTTF of 1,000,000 Hours Mean to You?
10/22 Storage, Forensics, and RPC Beebe: Digital Forensic Implications of ZFS
Birrell: Implementing Remote Procedure Calls
9 10/27 Quiz #2 and Early Distributed Systems Quiz #2: Storage Systems
Schroeder: Experience with Grapevine: The Growth of a Distributed System
10/29 Distributed Hash Tables Stoica: Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications
Rowstrom: Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems
10 11/3 Distributed Services Project Meetings this week
Burrows: The Chubby lock service for loosely-coupled distributed systems
Badam: HashCache: Cache Storage for the Next Billion
11/5 Content Distribution and Technologies Peterson: AntFarm: Efficient Content Distribution with Managed Swarms
Ledlie: Network Coordinates in the Wild
11 11/10 The Cloud Dean: MapReduce: Simplified Data Processing on Large Clusters
Armbrust: Above the Clouds: A Berkeley View of Cloud Computing
11/12 Failure Rinard: Enhancing Server Availability and Security Through Failure-Oblivious Computing
Qin: Rx: Treating Bugs as Software Allergies -- A Safe way to Survive Software Failures
12 11/17 Finding Bugs Engler: Bugs as Deviant Behavior: A General Approach to Inferring Errors in Systems Code
Cadar: Klee: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs
11/19 Security Krohn: Information Flow Control for Standard OS Abstractions
Zeldovich: Securing Distributed Systems with Information Flow Control
13 11/24 Project Presentations Rough Drafts Due by 5:00 PM
11/26 Thanksgiving None!
14 12/1 A Classic Quiz #3
Paper Reviews due by 5:00 PM WEDNESDAY 12/2
Lampson: Hints for System Design
12/3 Mock Program Committee Paper Reviews due by 5:00 PM WEDNESDAY 12/2
15 12/8 Reading Period
12/10 FINAL PROJECTS Final projects due at 5:00 PM

BACKGROUND

The following papers are considered background material. Most of them are quick, easy reads and will provide countless bits of wisdom on systems design, doing research, writing papers, and giving presentations. Some are papers you may have discussed in CS161; if you haven't read these, you definitely should as some discussions will assume the knowledge. For the rest, I urge you to read them sooner rather than later.

The papers are listed alphabetically by first author and title.

Papers we will not cover in class, but which may be appropriate for the first assignment

Papers with which I am assuming you are familiar.

  • McKusick: A Fast File System for UNIX (pdf)
  • Ousterhout: A Trace-Driven Analysis of the UNIX 4.2BSD File System (pdf)
  • Ritchie: The UNIX Time-Sharing System (pdf)
  • Rosenblum: The Design and Implementation of a Log-Structured File System (pdf)