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)
|
prabal |
2 |
Jan 6 |
Tutorial: Graphs, Tables and Captions,
Aaron Schulman,
Gnuplot example: lec2.tgz
(no summary)
|
aschulm |
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.
|
michjc |
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.
|
jdpriest |
5 |
Jan 6 |
Tutorial: Statistics,
Eric Brewer.
You will be expected to do this level of analysis.
(no summary, possible 1/17 quiz)
|
self-study (no class) |
6 |
Jan 17 |
Survey of Virtual Machine Research,
Robert P. Goldberg,
IEEE Computer, Vol. 7, No. 6, Jun 1974, pp. 34-45.
|
prabal |
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.
|
prabal |
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)
|
self-study (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.
|
androbin*, 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.
|
kyminlee*, 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)
|
self-study (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.
|
huanfeng*, 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.
|
djonik*, 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.
|
groups |
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.
|
groups |
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.
|
lohity*, tgrunn, mspivak, liyiwen, tjandrews |
17 |
Feb 10 |
Learning Technical Writing Using the Engineering Method,
Norman Ramsey,
Unpublished.
(no summary)
|
self-study (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.
|
tjandrews*
|
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.
|
tiacheng*
|
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.
|
shaizeen*
|
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.
|
wujj*
|
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.
|
ddclark* |
24 |
Mar 8 |
Memory Resource Management in VMware ESX Server,
Carl A. Waldspurger
Proc. Fifth Symposium on Operating Systems Design and Impl., 2002
|
warthur* |
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.
|
brajc* |
26 |
Mar 15 |
Congestion Avoidance and Control,
Van Jacobson and Michael J. Karels,
SIGCOMM'88, 1988.
|
tgrunn* |
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.
|
sanae* |
28 |
Mar 22 |
Dynamo: Amazon's Highly Available Key-value Store,
Giuseppe DeCandia, et al.
Proc. 21th ACM Symposium on Operating Systems Principles 2007.
|
pludwig* |
29 |
Mar 27 |
The Chubby Lock Service for Loosely-Coupled Distributed Systems,
Mike Burrows,
OSDI'06, 2006.
|
mspivak* |
30 |
Mar 29 |
Bigtable: A Distributed Storage System for Structured Data,
Fay Chang, et al.
OSDI'06, 2006.
|
arungan* |
31 |
Apr 3 |
Finding a Needle in Haystack: Facebook's Photo Storage,
Doug Beaver, et al.
OSDI'10, 2010.
|
rakeshmn* |
32 |
Apr 5 |
MapReduce: Simplified Data Processing on Large Clusters,
Jeffrey Dean and Sanjay Ghemawat,
OSDI'04, 2004.
|
crowella* |
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.
|
qks* |
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.
| caoxiezh* |
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.
|
sgmiller* |
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
|
all* |
Prerequisites
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.
Policies
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.
Grading
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. |
Resources
- How to Read a Paper by S. Keshav.
- How to Read a Research Paper by Michael Mitzenmacher.
- Writing Reviews for Systems Conferences by Timothy Roscoe.
- How to Read an Engineering Research Paper by William Griswold.
- How to Read a Research Paper by Spencer Rugaber.
This course uses a number of supporting tools:
- ACM Digital Library and
IEEE Xplore for papers.
- HotCRP
conference management system for paper reviews.
|