CS 656: Operating Systems

Spring, 2009

Professor: Marty Humphrey

 

Latest News/Revisions to Web Page (Fri 5/2/09)

 Logistics

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 
The Structure of the "THE" Multiprogramming System (incl. appendix)
Communications of the ACM 11(5), May 1968.

Per Brinch Hansen
The Nucleus of a Multiprogramming System
Communications of the ACM 13(4), April 1970 

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
HYDRA: The Kernel of a Multiprocessor Operating System
Communications of the ACM 17(6), June 1974, pp. 337-344.

 

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
Pilot: An Operating System for a Personal Computer
Communications of the ACM 23(2), Feb 1980.

Hugh C. Lauer
Observations on the development of an operating system
ACM Symposium on Operating Systems Principles, 1981.  

 

 

 

Mon 2/2

No Class – Department Colloquium

 

 

 

Wed 2/4

Dawson Engler and Franz Kaashoek.
Exterminate All Operating Systems Abstractions.
Proceedings of the Fifth Workshop on Hot Topics in Operating Systems (HotOS-V), 1995.

Dawson Engler, Franz Kaashoek, J. O’Toole, Jr. 
Exokernelan operating system architecture for application-level resource management.
Fifteenth ACM Symposium on Operating Systems Principles, 1995.

 

 

 

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
Improving the reliability of commodity operating systems.
ACM Symposium on Operating Systems Principles, 2003.

3,4

 

 

Fri 2/20

(make-up

For Mon 2/23)

Thomas Anderson, Brian Bershad, Edward Lazowska, and Henry Levy
Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism.
ACM Transactions on Computer Systems, Vol 10, No 1, Feb 1992, Pages 53-79.

5

 

 

Mon 2/23

No class – Marty out of town

 

 

 

Wed 2/25

Carl A. Waldspurger and William E. Weihl.
Lottery Scheduling: Flexible Proportional-Share Resource Management.
Proceedings of the First USENIX Symposium on Operating System Design and Implementation (ODSI), Nov 1994.  

Gaurav Banga, Peter Druschel, and Jeffrey Mogul.  
Resource Containers: A New Facility for Resource Management in Server Systems.
Proceedings of the Third USENIX Symposium on Operating System Design and Implementation (ODSI), Feb 1999.

 

 

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
Monitors: An Operating System Structuring Concept.
Communications of the ACM 17(10), Oct 1974.

 6,7

 

 

Wed 3/11

Butler Lampson and David Redell.
Experience with processes and monitors in Mesa.
Communications of the ACM 23(2), Feb 1980.

 

 

 

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.
Eraser: A Dynamic Data Race Detector for Multithreaded Programs.
ACM Transactions on Computer Systems, Vol 15, No 4, Nov 1997, Pages 391-411.

 

 

 

Wed 3/18

Christopher Rossbach, Owen Hoffman, Donald Porter, Hany Ramadan, Aditya Bhandari, Emmett Witchel. 
TxLinux: Using and Managing Hardware Transactional Memory in Operating Systems.
Proceedings of the 21st ACM Symposium on Operating Systems Principles (SOSP), Oct 2007.

 

 

 

Fri 3/20

(make-up

for 2-10)

Peter Denning. 
The working set model for program behavior.
Communications of the ACM. Vol 11, Issue 5 (May 1968), pages 323 – 333.

 

H. M. Levy, P. H. Lipman. 
Virtual Memory Management in the VAX/VMS Operating System.
Computer. Vol 15, Issue 3, (March 1982).

 

 

 

Mon 3/23

Marshall McKusick, William Joy, Samuel Leffler, Robert Fabry.
A Fast File System for UNIX.
ACM Transactions on Computer Systems, Vol 2, No 3, Aug 1984, Pages 181-197.

8,9

 

 

Wed 3/25

Mendel Rosenblum and John Ousterhout.
The Design and Implementation of a Log-Structured File System.
ACM Transactions on Computer Systems, Vol 10, No 1, Feb 1992, Pages 26-52.

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.
Rethink the Sync.

Proceedings of the 7th USENIX Symposium on Operating System Design and Implementation (ODSI), 2006.

 

N. Zeldovich, S. Boyd-Wickizer, E. Kohler, and D. Mazieres.
Making Information Flow Explicit in HiStar.

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. 
A Case for Redundant Arrays of Inexpensive Disks.
Proceedings of the 1988 ACM SIGMOD International Conference on Management of Data.

16,17

 

 

Mon 4/6

Russel Sandberg, David Goldberg, Steve Kleiman, Dan Walsh, and Bob Lyon. 
Design and Implementation of the Sun Network Filesystem.
Proceedings of Summer 1985 USENIX Conference, pages 119-130.

 

John Howard, Michael Kazar, Sherri Menees, David Nichols, M. Satyanarayanan, Robert Sidebotham, Michael West.
Scale and Performance in a Distributed File System.
ACM Transactions on Computer Systems, Vol 6, No 1, Feb 1988, Pages 51-81.

 

Sanjay Ghemawatt, Howard Gobioff, Shun-Tak Leung. 
The Google File System.
Proceedings of the 19st ACM Symposium on Operating Systems Principles (SOSP), Oct 2003.

 

 

 

Wed 4/8

Ken Thompson. 
Reflections on Trusting Trust.
Communications of the ACM. Vol 27, Issue 8 (Aug 1984), pages 761 – 763.

Arvind Seshadri, Mark Luk, Ning Qu, and Adrian Perrig. 

SecVisor: A Tiny Hypervisor to Provide Lifetime Kernel Code Integrity for Commodity OSs.
Proceedings of the 21st ACM Symposium on Operating Systems Principles (SOSP), Oct 2007.

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. 
Corey: An Operating System for Many Cores.
Proceedings of the Eighth USENIX Symposium on Operating System Design and Implementation (ODSI), Dec 2008.

 

 

 

Wed 4/15

Bruce Walker, Gerald Popek, Robert English, Charles Kline, Greg Thiel. 
The LOCUS distributed operating system.
Proceedings of the 9st ACM Symposium on Operating Systems Principles (SOSP), Oct 1983.

 

Galen Hunt and James Larus. 
Singularity: Rethinking the Software Stack.  
Operating Systems Review. Vol. 41, Iss. 2, pp. 37 – 49, April 2007.

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)