EECS 582: Advanced Operating Systems (W'12)


  • 04/30/2012: Final grade distribution.
  • 04/23/2012: Paper/Poster/Demo Schedule:
    • Submit papers online (HotCRP) and via hardcopy by 10:00 AM on 04/25/2012.
    • Demo/poster session setup at 10:00 AM on 04/25/2012.
    • Demo/poster session starts at 10:30 AM on 04/25/2012.
    • Demo/poster session ends at 12:30 PM on 04/25/2012.
  • 04/01/2012: Readings through 4/17 posted.
  • 02/23/2012: Readings through 3/8 posted.
  • 02/14/2012: Attend Christos Kozyrakis' talk at 10:30am on Fri, 2/17 in 1690 CSE.
  • 02/09/2012: Readings through winter break posted.
  • 01/24/2012: Readings through 2/7 posted. On 2/3 and 2/7, we'll review project proposals.
  • 01/18/2012: Reading for 1/20 class moved to 1/27. For 1/20, read FFS on your own (no summary).
  • 01/12/2012: No class on Friday the 13th! Stay safe, but study the statistics tutorial on your own.
  • 01/08/2012: Having trouble with hypotheses and the scientific method? Read: this, this, and this.
  • 01/08/2012: Paper review system is up:
  • 01/05/2012: Meeting room moved to 1690 CSE.
  • 01/05/2012: Welcome to EECS 582!

Course Administrivia

  EECS 582, Winter 2012, 4 Units, CN: 25826
  Prabal Dutta
  James Priestley
Paper Summaries:
  1690 CSE, TuTh: 10:30 AM - 12:00 PM (Lecture/Discussion)
  1690 CSE, Fri: 2:30 PM - 3:30 PM (Tutorials/Projects/Makeup)
Office Hours:
  Dutta: 4773 CSE, Tue 1:30 PM - 3:00 PM
  Priestley: 1695 CSE, Mon 3:00 PM - 5:00 PM

Course Description

The design of computer systems -- whether building-size or hand-held, file system or database -- faces many common challenges and pitfalls. Fortunately, many of the principles and practices are common as well. This class will focus on identifying and understanding the enduring principles and practices in computer systems design and implementation, and will prepare students to carry out substantial independent systems research projects.

This course will discuss advanced topics and research issues in operating systems. Topics will be drawn from a variety of operating systems areas such as distributed systems and languages, networking, security, and protection, real-time and embedded systems, modeling and analysis, etc. Based on student interest expressed during the first class, we will cover some of the following topics: multiprocessor systems, storage systems, synchronization, mobile/real-time systems, usability, security, distributed systems, system design tradeoffs, energy/power management, and virtualization.

We will take a broad view of systems research and consider common issues that emerge across operating systems, database systems, networked systems, distributed systems, mobile systems, and embedded systems. We will read broadly, deeply, and critically. Our goals will be to understand the key principles and evaluate the scientific merit of each paper so that we have the background and skills to perform high-quality research.

Syllabus (Tentative)

Note:The bolded and/or *-marked lead names in the table below are the discussion leads and should prepare a 40 minute talk on the reading (and related topics, as appropriate). The other four names should prepare arguments both for and against the paper. The side each student will argue will be chosen at random during class.

Day Date Readings Lead
Classic Systems and Timeless Principles
1 Jan 5 The UNIX Time-Sharing System,
Dennis M. Ritchie and Ken Thompson,
Communications of the ACM, Vol. 17, No. 7, Jul 1974, pp. 365-375. (no summary)
2 Jan 6 Tutorial: Graphs, Tables and Captions,
Aaron Schulman,
Gnuplot example: lec2.tgz (no summary)
3 Jan 10 A History and Evolution of System R (slides),
Donald D. Chamberlin, et al.,
Communications of the ACM, Vol. 24, No. 10, Oct 1981, pp. 632-646.
4 Jan 12 A Protocol for Packet Network Intercommunication (slides),
Vinton G. Cerf and Robert E. Kahn,
IEEE Trans on Comm. Vol. 22, No. 5, May 1974, pp. 637-648.
5 Jan 6 Tutorial: Statistics,
Eric Brewer.
You will be expected to do this level of analysis. (no summary, possible 1/17 quiz)
(no class)
6 Jan 17 Survey of Virtual Machine Research,
Robert P. Goldberg,
IEEE Computer, Vol. 7, No. 6, Jun 1974, pp. 34-45.
7 Jan 19 Some Hints for Computer System Design,
Butler W. Lampson,
Proc. of the 9th ACM Symposium on Operating Systems Principles, Oct 1983, pp. 33-48.
Storage Systems
8 Jan 20 Review: A Fast File System for UNIX,
M.K. McKusick, W.N. Joy, S.J. Leffler, and R.S. Fabry,
ACM Trans. on Comp. Sys., Vol. 2, No. 3, Aug 1984, pp. 181-197. (no summary)
(no class)
9 Jan 24 A Case for Redundant Arrays of Inexpensive Disks (RAID),
David A. Patterson, Garth Gibson, and Randy H. Katz,
ACM SIGMOD Conference on Management of Data, Chicago IL, June 1988.
shaizeen, zhsun,
djonik, wlthoma
10 Jan 26 Analysis and Evolution of Journaling File Systems,
V. Prabhakaran, A. Arpaci-Dusseau, R. Arpaci-Dusseau,
USENIX Annual Technical Conference, 2005.
jlafonta, wujj,
ddclark, wwhuang
11 Jan 27 Tutorial: How (and How Not) to Write a Good Systems Paper,
Roy Levin and David Redell,
ACM Operating Systems Review, Vol. 17, No. 3, Jul 1983, pp. 35-40. (no summary)
(no class)
12 Jan 31 Disconnected Operation in the Coda File System,
James Kistler and M. Satyanarayanan,
ACM Trans. on Computer Systems, Vol. 10, No. 1, Feb 1992.
arungan, warthur,
rakeshmn, qks
13 Feb 2 Lightweight Recoverable Virtual Memory,
M. Satyanarayanan, H. Mashburn, P. Kumar, D. Steere, and J. Kistler,
ACM Trans. on Computer Systems, Vol. 12, No. 1, Feb 1994.
pludwig, crowella,
caoxiezh, jpvarbed
14 Feb 3 Project Proposal Reviews
Must answer the first three paper review questions + provide project timeline.
Must present proposal in 5 minutes or less. Review with jdpriest beforehand.
15 Feb 7 Project Proposal Reviews
Must answer the first three paper review questions + provide project timeline.
Must present proposal in 5 minutes or less. Review with jdpriest beforehand.
16 Feb 9 Better I/O Through Byte-Addressable, Persistent Memory,
J. Condit, E. Nightingale, C. Frost, E. Ipek, B. Lee, D. Burger, and D. Coetzee,
ACM Symposium on Operating Systems Principles, Oct. 2009.
tgrunn, mspivak,
liyiwen, tjandrews
17 Feb 10 Learning Technical Writing Using the Engineering Method,
Norman Ramsey,
Unpublished. (no summary)
(no class)
Concurrency, Scheduling, and Sharing
18 Feb 14 The Click Modular Router,
Robert Morris, Eddie Kohler, John Jannoti, M. Frans Kaashoek,
Proc. 17th ACM Symposium on Operating Systems Principles, Dec 1999.
19 Feb 16 SEDA: An Architecture for Well-Conditioned, Scalable Internet Services,
Matt Welsh, David Culler, and Eric Brewer,
Proc. 18th ACM Symposium on Operating Systems Principles, Oct 2001.
20 Feb 17 Talk: It's All about the Memory (again)
Christos Kozyrakis (Stanford University)
ACAL Seminar, 10:30am - 12:00pm, 1690 CSE (no summary)
guest speaker
21 Feb 21 Capriccio: Scalable Threads for Internet Services,
Rob von Behren, Jeremy Condit, Feng Zhou, George C. Necula, and Eric Brewer
Proc. 19th ACM Symposium on Operating Systems Principles, Oct 2003.
22 Feb 23 Scheduler Activations,
T. E. Anderson, B. N. Bershad, E.D. Lazowska, H.M. Levy,
ACM Transactions on Computer Systems, Vol. 10, No. 1, February 1992, Pages 53-79.
23 Mar 6 Lottery Scheduling: Flexible Proportional-Share Resource Management,
Carl A. Waldspurger and William E. Weihl,
Proc. First Symposium on Operating Systems Design and Impl., 1994.
24 Mar 8 Memory Resource Management in VMware ESX Server,
Carl A. Waldspurger
Proc. Fifth Symposium on Operating Systems Design and Impl., 2002
Networked and Distributed
25 Mar 13 IP is Dead, Long Live IP for Wireless Sensor Networks,
Jonathan Hui and David Culler,
Proc. of 6th ACM Sensys'08, 2008.
26 Mar 15 Congestion Avoidance and Control,
Van Jacobson and Michael J. Karels,
SIGCOMM'88, 1988.
27 Mar 20 Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications,
Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan,
SIGCOMM'01, 2001.
28 Mar 22 Dynamo: Amazon's Highly Available Key-value Store,
Giuseppe DeCandia, et al.
Proc. 21th ACM Symposium on Operating Systems Principles 2007.
29 Mar 27 The Chubby Lock Service for Loosely-Coupled Distributed Systems,
Mike Burrows,
OSDI'06, 2006.
30 Mar 29 Bigtable: A Distributed Storage System for Structured Data,
Fay Chang, et al.
OSDI'06, 2006.
31 Apr 3 Finding a Needle in Haystack: Facebook's Photo Storage,
Doug Beaver, et al.
OSDI'10, 2010.
32 Apr 5 MapReduce: Simplified Data Processing on Large Clusters,
Jeffrey Dean and Sanjay Ghemawat,
OSDI'04, 2004.
Secure and Mobile
33 Apr 10 Energy Management in Mobile Devices with the Cinder Operating System,
A. Roy, S. M. Rumble, R. Stutsman, P. Levis, D. Mazieres, N. Zeldovich,
EuroSys'11, Apr. 2011.
34 Apr 12 KLEE: Unassisted and Automatic Generation of High-Coverage Tests...,
Cristian Cadar, Daniel Dunbar, and Dawson Engler,
Proc. of the 8th USENIX Symposium on Operating System Design and Impl., Dec 2008.
35 Apr 17 Making Information Flow Explicit in HiStar,
N. Zeldovich, S. Boyd-Wickizer, E. Kohler, and D. Mazieres,
CACM, Vol. 54, No 11, pp 93-101.
Poster and Demo Session
36 Apr 25 Poster/Demo Session (Tishman Hall, Beyster Building)
10:00 AM : Setup
10:30 AM : Poster/Demo Session
12:30 PM : Cleanup


The formal prequisite for this course is EECS 482 (Introduction to Operating Systems, or an equivalent class from another university). Courses in database systems, networking, and distributed systems are also helpful. The informal prerequisite for this course is a strong interest in graduate systems research. You need (or need to acquire) the skill to read deeply, analyze critically, and synthesize effectively. Although there is not much in the way of homeworks and labs, success in systems research often requires a substantial design and implementation effort, so you should have strong technical skills.


Honor Code. The Engineering Honor Code applies to paper summaries and exams.

Paper Reviews. Read the papers carefully and write your own paper summary/review. Your understanding and learning is greatly aided by the critical evaluation of others' work. For each paper, read it and discuss with peers. For papers that require summaries, you must address the following questions in detail (at least one paragraph per question):

  • What problem does the paper solve and why is it important?
  • What is the testable hypothesis underlying the work? Is it stated?
  • What is the proposed solution and the key insight?
  • Does it work, does it really work, and when does it fail?
  • What are two limitations of the system and how could you fix them?

The paper reviews are to be submitted electronically at least 24 hours prior to the class during which we will discuss the paper. Late reviews will not be counted. You can miss up to three paper reviews during the term without penalty. Failing to turn in six or more reviews on time will result in a zero for all paper reviews. Allocate enough time for your reading and plan your reviews carefully.


Item Weight Description
Research Paper 50% Substantial individual/group research project and paper.
Exam and Quizzes 25% Midterm exam and (perhaps) random minute quizzes.
Paper Summaries 20% Written summaries/reviews of 2-3 papers per week.
Demo/Poster 5% Open demo/poster session at the end of the term.


  1. How to Read a Paper by S. Keshav.
  2. How to Read a Research Paper by Michael Mitzenmacher.
  3. Writing Reviews for Systems Conferences by Timothy Roscoe.
  4. How to Read an Engineering Research Paper by William Griswold.
  5. How to Read a Research Paper by Spencer Rugaber.
This course uses a number of supporting tools:
  1. ACM Digital Library and IEEE Xplore for papers.
  2. HotCRP conference management system for paper reviews.