CS 656: Operating Systems
Spring, 2009
Professor: Marty
Humphrey
Latest News/Revisions to
Web Page (Fri 5/2/09)
Silberschatz, Galvin, and Gagne
Description
An operating system facilitates the
execution of user and system programs on the bare hardware of a machine. One
view of an operating system is that it essentially manages resources such as
physical memory, disks, and CPU(s). By
managing resources, the operating system allows (in most cases) multiple user
programs to be executed concurrently, without corrupting each other.
This course covers the design and
implementation of operating systems, stressing the interaction of the operating
system with computer architecture, compilers, networks, and user programs.
Covered topics include processes, CPU scheduling, process synchronization,
deadlocks, memory management, virtual memory, file systems (interface and
implementation), protection, security, and some aspects of distributed
operating systems.
The general structure of this class is to
cover the topics typically found in an undergraduate OS class at about 3 times the
pace of an undergrad class. The rest of the time (the remaining 2/3,
that is) will be used discussing research papers on the given topic – note that
these papers will be some combination of “older” papers and “new” papers.
Specific course objectives:
1.
Develop an
understanding of the tasks and components of an operating system and how they
influence the operation of user-level programs, how the computer architecture
and programming languages interact with the OS to manage concurrent activities,
and how the OS manages resources and provides protection and security.
2.
Learn the principles
of correct concurrent programming and how various types of synchronization
primitives operate.
3.
Develop an
understanding of the fundamental concepts of computer security.
4.
Be able to analyze
how contemporary operating systems implement these concepts, be able to
evaluate the advantages and disadvantages of their varying implementations, and
be able to discuss these issues in a knowledgeable fashion.
5.
Be able to analyze
and discuss the pros/cons of particular OS implementation and evaluation
strategies.
6.
Be able to critically
read systems-oriented research papers.
7.
Be able to conduct a
research project related to Operating Systems.
Details
Coursework
|
What |
When |
Weight |
|
Readings (papers, textbook, etc.) |
every class |
|
|
Class participation |
every class |
10 % |
|
Written synopses / programming assignment |
Synopses: every class; Programming Assignment in 1st half of class |
25 % |
|
Class project |
2nd half of class; presentation in last 2 weeks of class |
35 % |
|
Final exam |
Fri, May 8, 9am – noon |
30 % |
Synopses
Each student must submit a synopsis of the
papers for the day at least 4 hours prior to the beginning of class (so this usually means by 11:30am that day). The single
email should contain at most 1 page (ASCII – no attachments) for each paper of the day (e.g., if we
cover 2 papers that day, then the student should submit 1 email containing two
synopses, where each synopsis is at most 1 page). The format of a synopsis must
be:
·
Paragraph 1: 1-2 sentence problem statement
(what problem is being addressed in the paper?) and 1-2 summary of the paper
(e.g., “the authors address the problem by designing and implementing…”)
·
Paragraph 2: pros of the paper (what’s
compelling/effective about the paper), and then cons of the paper (what are the
most significant flaw(s) of the paper?)
The student will receive a single grade for
the day’s synopsis/synopses. The grading is as follows:
· CP (“check-plus” – 100 points): all 4 parts are excellent, assertions/claims with evidence, synopsis shows excellent understanding and insight
· C (“check” – 75 points):
· CM (“check-minus” – 50 points): at most 2 of the 4 parts are satisfied
· Not submitted 4 hours prior to class time: 0 points
Programming Assignment (1st
half of Class)
There is one programming assignments
planned for the first half of class, which everyone in the class will do
(individually). It will be on basic measurement and interpretation of typical
OS functionality, such as opening a file, creating a process, etc.
Class Project (2nd half of
Class)
The class project is very important (35% of
your grade). It can be your own design/implementation, or you can pursue one of
the topics that I provide. You will meet regularly with me to ensure your plan
and that you are hitting your milestones. This will be completed by you or with
one other person. You will write a short conference- or workshop-style paper,
and you will give a presentation at the class mini-conference in the last two
weeks of class. More details will be provided in class.
Schedule
|
Date |
Topic |
Text Chapter(s) |
Assignment Out |
Assignment Due |
|
Tues 1/13 |
Intro (Note: Special
Meeting day due to University MLK Day schedule) |
|
|
|
|
Wed 1/14 |
Edsger W. Dijkstra Per
Brinch Hansen |
1,2 |
|
|
|
Mon 1/19 |
No
Class – MLK day |
|
|
|
|
Wed 1/21 |
No
Class – Department Colloquium |
|
|
|
|
Mon 1/26 |
W.
Wulf, E. Cohen, W. Corwin, A. Jones, R. Levin, C. Pierson, and F. Pollack |
|
Assignment #1 Out (due in 2 weeks) |
|
|
Wed 1/28 |
David D. Redell, Yogen
K. Dalal, Thomas R. Horsley, Hugh C. Lauer, William
C. Lynch, Paul R. McJones, Hal G. Murray, and
Stephen C. Purcell Hugh C. Lauer |
|
|
|
|
Mon 2/2 |
No Class
– Department Colloquium |
|
|
|
|
Wed 2/4 |
Dawson Engler and Franz Kaashoek. Dawson Engler, Franz Kaashoek, J.
O’Toole, Jr. |
|
|
|
|
Fri 2/6 (make-up for Mon 2/2) |
Edouard Bugnion,
Scott Devine, and Mendel Rosenblum. Disco: Running Commodity
Operating Systems on Scalable Multiprocessors. Proceedings of The 16th ACM
Symposium on Operating Systems Principles, October 1997 |
|
|
|
|
Mon 2/9 |
No class – Instructor illness |
|
|
|
|
Wed 2/11 |
P. Barham, B. Dragovic, K. Fraser, S. Hand, T. Harris, A. Ho, R. Neugebauer, I. Pratt, and A. Warfield Xen
and the Art of Virtualization Proceedings of the
19th Symposium on Operating System Principles, October, 2003. |
|
Assignment #2 Proposal due: Fri 2/27 5pm |
Assignment #1 (3:30pm) |
|
Mon 2/16 |
No class – Marty out of town |
|
|
|
|
Wed 2/18 |
Michael M. Swift,
Brian N. Bershad, and Henry M. Levy |
3,4 |
|
|
|
Fri 2/20 (make-up For Mon 2/23) |
Thomas Anderson, Brian
Bershad, Edward Lazowska,
and Henry Levy |
5 |
|
|
|
Mon 2/23 |
No class – Marty out of town |
|
|
|
|
Wed 2/25 |
Carl A. Waldspurger and William E. Weihl. Gaurav Banga, Peter Druschel, and
Jeffrey Mogul. |
|
|
Assignment #2 Proposal due: Fri 2/27 5pm |
|
Mon 3/2
|
No Class -– Spring Break |
|
|
|
|
Wed 3/4 |
No Class –- Spring Break |
|
|
|
|
Mon 3/9 |
C.A.R. Hoare |
6,7 |
|
|
|
Wed 3/11 |
Butler Lampson and David Redell. |
|
|
|
|
Fri 3/13 (make-up for 2/16) |
Brief presentation of class
proposals by students (Schedule TBD) |
|
|
|
|
Mon 3/16 |
Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, and Thomas Anderson. |
|
|
|
|
Wed 3/18 |
Christopher Rossbach, Owen
Hoffman, Donald Porter, Hany Ramadan, Aditya Bhandari, Emmett Witchel. |
|
|
|
|
Fri 3/20 (make-up for 2-10) |
Peter Denning. H. M. Levy, P. H. Lipman. |
|
|
|
|
Mon 3/23 |
Marshall McKusick, William Joy, Samuel Leffler,
Robert Fabry. |
8,9 |
|
|
|
Wed 3/25 |
Mendel Rosenblum and John Ousterhout. |
10,11 |
|
Mid-way
project meetings on Thurs 3/26 and Fri 3/27 |
|
Mon 3/30 |
No class – Marty out of town |
|
|
|
|
Wed 4/1 |
E. B. Nightingale, K. Veeraraghavan, P. Chen, and J. Flinn. Proceedings of the 7th
USENIX Symposium on Operating System Design and Implementation (ODSI), 2006. N. Zeldovich, S. Boyd-Wickizer, E. Kohler, and D. Mazieres.
Proceedings of the 7th
USENIX Symposium on Operating System Design and Implementation (ODSI), 2006. |
|
|
|
|
Fri 4/3 (make-up for 3/30) |
David Patterson, Garth Gibson, and Randy Katz. |
16,17 |
|
|
|
Mon 4/6 |
Russel
Sandberg, David Goldberg, Steve Kleiman, Dan Walsh,
and Bob Lyon. John Howard, Michael Kazar,
Sherri Menees, David Nichols, M. Satyanarayanan, Robert Sidebotham,
Michael West. Sanjay Ghemawatt, Howard Gobioff, Shun-Tak Leung. |
|
|
|
|
Wed 4/8 |
Ken Thompson. Arvind Seshadri, Mark Luk, Ning Qu, and Adrian Perrig. SecVisor: A Tiny Hypervisor to Provide Lifetime Kernel
Code Integrity for Commodity OSs. |
14,15 |
|
|
|
Mon 4/13 |
Silas Boyd-Wickizer, Haibo Chen, Rong Chen, Yandong Mao, Frans Kaashoek, Robert Morris,
Aleksey Pesterev, Lex Stein, Ming Wu, Yuehau Dai, Yang Zhang, and Zheng
Zhang. |
|
|
|
|
Wed 4/15 |
Bruce Walker, Gerald Popek,
Robert English, Charles Kline, Greg Thiel. Galen Hunt and James Larus. |
18 |
|
Project final report due Friday 4/17 (noon) |
|
Mon 4/20 |
1. Michael
Skalak, Mona Sergi: Measuring Hammer Filesystem
Performance 2. Kirti
Chawla,
Taniya Siddiqua: Mutation Resistant Runtime Code using
Kernel Attestation 3. Ge
Gao, Ren Xu, Yu Yao: Reducing Cache Coldness in CFS Scheduler of
Linux 4. Sean M. Arietta, William P. Burns:
GANGSTA:
An Energy Aware Arbiter for Multicore Systems |
|
|
|
|
Wed 4/22 |
1. Erin Carson, Oleg Krogius: Vulnerability
Resistance through Event Tracing 2. Enamul Hoque,
Tanima Dey : Comparing
Lottery and EEVDF Scheduling Algorithm for Real-time Applications 3. Joseph Talbott, Balaji Dhanasekaran: Performance Analysis of DragonFly BSD’s vkernel 4. Mario
Marino, Bhushan : DVFS-I/O: Extending
process oriented power management for I/O intensive processes |
|
|
|
|
Mon 4/27 |
1. Mitali Parthasarathy, Sonali
Parthasarathy : Performance Analysis of USB Mass Storage
Device on Linux vs. Windows XP 2. Wei
Wang, Jian Xiang :Thread Scheduling based on Observations for
Multi-Core System 3. Marisabel
Guevara,
Chris Gregg: Building a
Better CUDA Scheduler 4. Derek
Davis, Luther Tychonievich: Adding Capabilities to Commodity OSs: A Modest
Proposal |
|
|
|
|
Fri 5/8 |
Final Exam, 9:00 am - noon (closed books, closed notes) |
|
|
|