CS 656: Operating Systems
Spring, 2008
Professor: Marty
Humphrey
Latest News/Revisions to
Web Page (Fri 5/2/08)
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 providing the necessary capabilities to
the user. 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 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.
Details
Coursework
|
What |
When |
Weight |
|
Readings (papers, textbook, etc.) |
every class |
|
|
Class participation |
every class |
10 % |
|
Written synopses / programming assignment |
Synopses: every class; Prog. Assign in 1st half of class |
25 % |
|
Class project |
2nd half of class; presentation in last 2 weeks of class |
35 % |
|
Final exam |
Fri, May 9, 2pm-5pm |
30 % |
Synopses (effective for the March 24
papers)
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 10am 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
Old grading: All synopses submitted prior to the particular class receive CP otherwise 0
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 (NO 3-PERSON GROUPS ALLOWED!).
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 for project meetings:
|
|
Thurs Mar 27 |
Fri Mar 28 |
|
9:00 – 9:30 |
|
Claire and Dan |
|
9:30 – 10:00 |
|
|
|
10:00 – 10:30 |
Joel and Andrew |
|
|
10:30 – 11:00 |
|
Jiakang and Jiayuan |
|
11:00 – 11:30 |
|
Mike and Will |
|
11:30 – noon |
|
Qiang |
|
Noon – 12:30 |
|
JD and Zhigeng |
|
12:30 – 1:00 |
|
Yafeng and Jian |
|
1:00 – 1:30 |
|
|
|
1:30 – 2:00 |
Colleen and Eric |
Paul and Ming |
|
2:00 – 2:30 |
|
|
|
2:30 – 3:00 |
Blake, Steven, Chris |
|
|
3:00 – 3:30 |
|
|
|
3:30 – 4:00 |
Ke and Lukasz |
|
|
4:00 – 4:30 |
Blake and Tim |
|
|
4:30 – 5:00 |
Jason and Hengchang |
|
Schedule
|
Date |
Class #: Week #/Day # |
Topic |
Text Chapter |
Assignment Out |
Assignment Due |
|
Wed 1/16 |
1: W1-1 |
Intro (class notes) |
|
|
|
|
Mon 1/21 |
No class – Martin Luther King
day |
|
|
||
|
Wed 1/23 |
2: W2-1 |
Edsger
W. Dijkstra Per
Brinch Hansen |
1,2 |
Question for write-up: What are the main philosophical differences in design of the THE
system, the Nucleus system, and HYDRA? |
|
|
Mon 1/28 |
3: W3-1 |
W.
Wulf, E. Cohen, W. Corwin, A. Jones, R. Levin, C. Pierson, and F. Pollack |
|
|
|
|
Wed 1/30 |
4: W3-2 |
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 |
No additional question |
|
|
|
Mon 2/4 |
5: W4-1 |
No Class -- Marty out of town |
|
|
|
|
Wed 2/6 |
6: W4-2 |
Dawson Engler and
Franz Kaashoek. Dawson Engler, Franz Kaashoek, J. O’Toole, Jr. |
What are the similarities and differences
in philosophy of Exokernel vs. Nucleus? |
||
|
Fri 2/8: 4:15pm-5:30 (OLS 005) |
Make-up 5: W4-1 |
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 (class notes) |
What are the similarities and differences
of Exokernel and Disco? |
|
|