Grad Systems (COMPSCI 630)

Course Description

In this course, we will discuss classic papers across the broad area of Systems, in roughly chronological order by area: programming languages, architecture, runtime systems, operating systems, and system design in general. This is a lecture-driven class (not a seminar); you will not be expected to present papers, but you are expected to have read every paper before class and participate in in-class discussions.

This course can be used to satisfy core requirements for Systems for the M.S. and PhD degrees.

Grades will be based on in-class participation, projects, and exams.
You must submit your reviews via the review submission site before each class. Do not modify and re-submit your reviews: just submit once.

See these notes by John Ousterhout on writing reviews. Focus on the positive: these are classics for a reason!

Your reviews must address the following points:

  • Summary: (at least two paragraphs) What is the problem that this work addressed? What are the big ideas / key insights / technical contributions?
  • Significance / Contributions: How have the assumptions / context this work was based on changed? What is the practical significance of these results today?
  • Discussion Points: Include at least two discussion points to bring up in class.

You will be expected to scribe at least one lecture’s notes. Here is an example to use as a template (in LaTeX).

TA: Abhinav Jangda - W 4-5pm, CS207

Course Schedule

All paper reviews should be submitted using the class HotCRP site.

Tuesday, September 03

Introduction

Thursday, September 05

Compilers
The Education of a Computer, Hopper [read]
The FORTRAN Automatic Coding System, Backus [review]
The Night Watch, Mickens [read]

Tuesday, September 10

Thursday, September 12 — no class

Tuesday, September 17

Runtime Systems
Garbage Collection in an Uncooperative Environment, Boehm and Weiser [review]

Thursday, September 19 — no class

Tuesday, September 24

Computer Architecture
Architecture of the IBM System/360, Amdahl et al. [review]
Structural aspects of the System/360 Model 85: The cache, Liptay [read]
Bringing the Web Up to Speed with WebAssembly, Rossberg et al. [review]

Tuesday, October 01

Thursday, October 03

Concurrency
Experience with Processes and Monitors in Mesa, Lampson & Redell [review]

Tuesday, October 08

Os Design And Internals
The Evolution of the UNIX Time-Sharing System, Ritchie & Thompson [review]

Thursday, October 10

Networked Systems Principles
Hints for Computer System Design, Lampson [review]

Wednesday, October 16 — Midterm

ILC S140, 7:00pm-9:00pm

Thursday, October 17

Tuesday, October 22 — no class

Thursday, October 24 — no class

Monday, October 28 — Smash, A Compacting Memory Allocator

Tuesday, October 29

Thursday, October 31

Fault-Tolerance (Hardware)
A Case for Redundant Arrays of Inexpensive Disks (RAID), Patterson, Gibson & Katz [review]
Why Do Computers Stop and What Can Be Done About It?, Gray [review]

Tuesday, November 05

Thursday, November 07

Performance Analysis
GProf: A Call-Graph Execution Profiler, Graham et al. [review]
Coz: Finding Code that Counts with Causal Profiling, Curtsinger & Berger [review]

Tuesday, November 12

Thursday, November 14 — no class

Tuesday, November 19

Testing
An empirical study of the reliability of UNIX utilities, Miller et al. [review]
DART: Directed Automated Random Testing, Goderfroid et al. [review]

Thursday, November 21

Distributed Systems
Bitcoin: A Peer-to-Peer Electronic Cash System, Satoshi Nakamoto [review]

Tuesday, December 03

Distributed Systems
In Search of an Understandable Consensus Algorithm, Ongaro and Ousterhout [review]

Thursday, December 05

Catch-Up

Tuesday, December 10

Catch-Up

Friday, December 13 — Final

ILC S140, 1:00pm-3:00pm