/eecs582

Course website for Advanced Operating Systems

EECS 582: Advanced Operating Systems

Announcements

Date Note
01/06

- Fill in the EECS 582 Student Information form

- You will receive an invitation to join the 582 slack channel after creating an account on the paper-review website (see the “Paper reviews” below)

- Final paper templates: https://www.usenix.org/conferences/author-resources/paper-templates

We did not have a live-stream for today's lecture, but we will endeavor to have a live-stream for all future lectures. Join this Zoom meeting to watch the live-stream (you must login using UMich SSO).

01/06 You can use this document to discuss your background and interests (with the ultimate goal of finding some team members!)
01/09 Please check Presentation Schedule and start preparing for the paper presentation assigned to you. If your preferences cannot be fulfilled, please fill another "Student Information form" with new preferences. Remember that papers are assigned to students at a first-come-first-serve manner.
01/09 Please check Project Availability, a project will be marked as "FULL" when enough (determined by the project supervisor) students signed up for it. Start talking to project supervisors and finding your teammates! Rember to email us with your teammates CCed to sign up for a project.
01/24

Please check the main course Slack channel (eecs582-winter22) for information on asking questions to be discussed after paper presentations.

We added a discussion slide template (with some tips on leading/participating in discussions), available here.

We're going to be creating discussion threads per paper on Slack for you to ask questions that you'd like to have discussed or answered after the presentation. You can also ask questions for discussion anonymously through this Google Form.

01/31

Mid-term presentation schedules are out. Please find your project groups below (on either Feb.22 or Feb.24). If two classes are not enough, we will continue the presentation in the extra hour on Friday (Feb.25). The presentations are supposed to be a 10min talk followed by a 5min Q&A.

03/25

Class on Mar.29 is rescheduled to Apr.14; Mar.31 is rescheduled to Apr.19. The paper review assignment of paper "Tensorflow" is changed to the "Ray". See the updated schedule below.

04/07

Final presentation due date rescheduled from Apr.19 to Apr.28. See the updated schedule below.

Administrivia

Course Info

Course EECS 582, Winter 2022, 4 credits
Meetings

1010 DOW T/Th: 12:00–1:30 PM (Lectures/Discussion, for the first 3 lectures, rest will be presentations)

(When we do meet on Fridays, it will be at 3150 DOW, 1:30–2:30PM)

Live-Stream

Please come in person if you are able. However, if you cannot due to safety concerns, etc., you can join the live-stream on this Zoom meeting. Note, you must be logged into Zoom using your UMich credentials.

Recordings Course lectures will be audio/video recorded and made available to other students in this course. As part of your participation in this course, you may be recorded.
Instructors Tanvir Ahmed Khan, Ian Neal
GSI Gefei Zuo
Contact eecs582-staff@umich.edu
Office hours Zoom, by appointment only
Paper reviews

https://eecs582.eecs.umich.edu/papers/ (Create an account ASAP!)

To submit a review after logging in, click “New submission” and enter the title of the paper. Attach your review as a PDF file according to the format (there are a variety of tools to convert markdown to PDF). Put your name and your umich email as the author. Affiliation and abstract don’t matter.

Grading

Paper Reviews 20%
Presentations (paper presentations + midterm + final) 15%
Class Participation 10%
Project (prototype) 45%
Project (final paper) 10%
  • Paper Reviews: You can miss 4 reviews with no penalty. Afterwards, each miss beyond that will result in 25% decrease (i.e., 5% out of the 20% alloted for the Paper Reviews component) in grade for this portion of the course. Missing eight or more paper reviews will result in getting 0% out of the 20% possible for the Paper Reviews component.
  • Paper Presentations: we have a template for discussion questions (and some tips on leading/participating in paper discussions) here. You can ask discussion questions on slack and anonymous questions for discussion here.
  • See the first set of lecture slides (link coming soon) for more details.

Project Milestones

Date Milestone Details
Jan 11/ASAP Find project partners Find 2-3 like-minded students
Jan 13 Contact project supervisor/staff Email the supervising PhD students OR email EECS 582 staff with your group’s proposal
Jan 21 Finalize deliverables After regular back-and-forth discussions with the project supervisors
Feb 22–25 Mid-semester presentations Define and motivate the problem, survey related work, and form initial hypothesis and idea
Apr 28 Video presentations Record a presentation of your findings
Apr 28 Research paper Submit a project paper like the ones we’ve read

Schedule

The papers due for a review are marked with an (R). Here is the review template we will use.

Date Topic Required Material Optional Material

Jan 6 [Th]

(slides)

(video)

Welcome to EECS 582 - Introductions

You and Your Research

Strong Inference

The Many Faces of System Research

The Night Watch

Doing a Systems PhD

The Scientific Method

Jan 7 [F] No class

Select papers to present

How to Read a Paper?

Writing Systems Conference Reviews

Reading & Evaluating Papers

Task of the referee

Jan 11 [T]

(slides)

(video)

System Design

Find project partners

Hints for Computer System Design

Updated Hints for Computer System Design

Updated Hints Paper

Jan 13 [Th]

(slides)

(video)

Tackling

Complexity

Pick projects and get in touch with your contact students and us (through email)

Design Philosophy of DARPA Internet Protocols

End to End Arguments in System Design (R)

The Architecture of Complexity

Jan 14 [F]

No class

How to Give a Bad Talk?

How to Give a Great Talk?

A good conference talk

How to Give a Technical Talk?

Jan 18 [T]

(slides)

(video)

Kernels

Presentations begin

The Unix Timesharing System

Exokernel (R)

THE

The Unix Operating System

Pilot Operating System

Tannenbaum-Torvalds Debate

Threads and Input/Output in the Synthesis Kernel

Jan 20 [Th]

Naming

Development of the DNS

Designing a Global Name System (R)

Practical Naming Examples
Jan 21 [F]

No class

Submit deliverables for the project (forms the basis of your grade)

How to Write a Great Research paper?

How to Write a Good Systems Paper?

The Elements of Style
Jan 25 [T]

Locality

The Locality Principle (R)

Optimizations for Improving Data Locality

Numbers you should know
Jan 27 [Th]

Performance

AutoFDO (R)

NVBit

Google-Wide Profiling
Jan 28 [F] No class DTrace
Feb 1 [T]

Virtualization-1

IX (R)

Resource Containers

Disco
Feb 3 [Th]

Virtualization-2

Xen and the Art of Virtualization (R)

Formal Requirements for Virtualization

Arrakis
Feb 4 [F] No class
Feb 8 [T]

Security-1

How Diffie Hellman Fails In Practice (R)

Control Flow Integrity

17 Mistakes Microsoft Made in the Xbox Security System
Feb 10 [Th] Security-2

Spectre (R)

Systematic Evaluation of Transient Execution Attacks and Defenses

Foreshadow

A Note on the Confinement Problem

Feb 11 [F] No class Work on projects
Feb 15 [T]

Debugging

Delta Debugging (R)

Magpie

Paxos

Paxos for Human Beings

Feb 17 [Th]

Fault

Tolerance

Microreboot

Byzantine Fault Tolerance (R)

Error-free Multi-Valued Consensus
Feb 18 [F] No class Work on Projects
Feb 22 [T]

Projects

Mid-term Presentations

(P2,P5,P6,P7,P9)

Feb 24 [Th] Projects

Mid-term Presentations

(P11,P12 (group1,2,3),P14)

Feb 25 [F] No class Work on Projects
Mar 1 [T] No class Break
Mar 3 [Th] No class Break
Mar 4 [F] No class Break
Mar 8 [T] Failures

REPT (R)

Bugs as Deviant Behavior

Mar 10 [Th]

Datacenter

Systems - 1

MapReduce (R)

Google File System

Log-Structured File System

Redbook

Mar 11 [F] No class Work on projects
Mar 15 [T]

Datacenter

Systems - 2

Hive

Spanner (R)

The Google File System

GFS: An Evolution on Fast-Forward

Mar 17 [Th]

Datacenter

Systems - 3

Big Table (R)

Canopy: An End-to-End Performance Tracing And Analysis System

TAO: Facebook’s Distributed Data Store for the Social Graph

Segcache: a memory-efficient and scalable in-memory key-value cache for small objects

Mar 18 [F] No class Work on projects
Mar 22 [T]

Testing and

Verification - 1

Klee (R)

Sel4: Formal verification of an OS Kernel

Therac 25: An engineering Disaster

Northeastern Blackout

A Few Billion LOC Later

Mar 24 [Th]

Testing and

Verification - 2

Jaaru: Efficiently Model Checking Persistent Memory Programs

Agamotto: How Persistent is your Persistent Memory Application? (R)

Cross-Failure Bug Detection in Persistent Memory Programs

Witcher: Systematic Crash Consistency Testing for Non-Volatile Memory Key-Value Stores

Mar 25 [F] No class Work on projects
Mar 29 [T] No class Work on projects
Mar 31 [Th] No class Work on projects
Apr 1 [F] No class Work on projects and final paper
Apr 5 [T]

Heterogeneous

Systems

Cascade (R)

FIRRTL

Popcorn
Apr 7 [Th] Concurrency

Lamport Clocks

Learning From Mistakes (R)

The Problem with Threads
Apr 8 [F] No class Work on projects and final paper
Apr 12 [T]

Atomicity &

Consistency

Dynamo (R)

Optimistic Concurrency Control

CAP Theorem

CAP Theorem Twelve Years Later

Apr 14 [Th]

Machine

Learning

Systems

TensorFlow

Ray: A Distributed Framework for Emerging AI Applications(R)

Machines That Think?

The Great AI Awakening

On the Dangers of Stochastic Parrots: Can Language Models Be Too Big? 🦜

Apr 15 [F] No class Work on projects and final paper
Apr 19 [T] Rethinking the OS Design

Last (scheduled) day of class

Barrelfish (R)

Linux Scalability

Scalable Commutativity Rule
Apr 28 [Th] Final Paper and Presentation Due