CMPS 221: Advanced Operating Systems
Fall 2005
Computer Science Department
University of California, Santa Cruz
Syllabus
| Time: | Tuesday & Thursday 10:00–11:45 AM |
| Location: | Baskin Engineering 169 |
| Instructor: | Professor Ethan Miller (elm at cs·ucsc.edu) |
| Office & hours: | E2-365, Tue 2–3 PM, Wed 11–noon |
| Prerequisites: | An undergraduate operating systems class |
| Readings: | List of papers available online |
| Home Page: | http://www.soe.ucsc.edu/classes/cmps221/Fall05/ |
Course objectives
This course is a graduate level study of the issues in the design and implementation of computer operating systems. The readings are taken from the current research literature and articles of historical significance. The topics include, but are not limited to:
- Early systems
- Kernel structures
- Memory management
- Scheduling
- Synchronization
- File systems
- Authentication, protection, and security
- Performance evaluation
- Reliability and fault tolerance
- Communication and distributed systems
The course proceeds by topic, beginning with systems of historical significance. The focus will be on current research in the area, so the time allocated to each topic will depend on the availability of articles.
Additional topics may be covered, depending on the interests of the students and the professor.
Preparation
You are expected to have basic operating system knowledge, such that provided by an undergraduate course such as CMPS 111. Undergraduates will be admitted only with the permission of the instructor.
Web pages
All of the information for this class will be distributed via the Internet. The class home page is at the URL listed above, and is the starting point for lots of information about the class including readings lists, assignments, and notes. We'll also be using a phpbb forum for discussions and class announcements this quarter, available at http://apps.soe.ucsc.edu/fora/viewforum.php?f=2. You'll need to register for the forum in order to be able to post messages and to allow the system to track messages you've already seen.
Access to some of the class web pages is restricted to users on campus. In particular, papers can only be downloaded from a computer in the ucsc.edu domain. If you want to access restricted web pages or papers from off-campus, you can use the UCSC library proxy, also known as SlugLink (requires a library card / student ID).
Readings
A major component of this course will be the in-class discussion of papers on research in distributed systems. Typically, you will need to read two or three papers per class; the reading list is available online, and most of the papers are available as links from the reading list (though only to computers in the ucsc.edu domain). These papers should be read carefully, and a short summary of each article and a few questions or insightful comments about the material (at least 3 per paper) prepared for the class meeting in which the paper will be discussed. The summary of each article consists of brief answers to the following seven questions, and three comments or questions about the paper (the eighth item):
- What is the problem the authors are trying to solve?
- What other approaches or solutions existed at the time that this work was done?
- What was wrong with the other approaches or solutions?
- What is the authors' approach or solution?
- Why is it better than the other approaches or solutions?
- How does it perform?
- Why is this work important?
- Three or more comments/questions about the paper
The optional text will provide a textbook-style approach to the issues we will be covering. If your background in operating systems is less strong, you may wish to use the text as a companion to the papers we are reading. There will be no assigned readings in the text, but it's a very useful reference on distributed systems, and many of the papers we'll be reading are listed in the text's bibliography.
Course requirements
Because this is a seminar, the majority of the course work will involve the reading, class discussions, and the final project.
Paper summaries
Each student is expected to write a summary of each paper as described above. The summaries for the papers assigned for a course meeting must be turned in before class by email to elm+221summaries [at] cs.ucsc.edu. Please send your summaries as a regular ASCII email message including all summaries due for that day. The summaries should be separated from each other by a line containing at least 20 = signs (like this ==============================), and each summary should contain your name and the paper title.
Summaries will be graded on a 02 scale (0 = not turned in, 1 = minimal effort, 2 = satisfactory). Students may find it useful to bring printouts of their summaries to class discussions. Summaries are due at 8 AM on the day of class.
Paper discussions (in-class)
Every student in the class will lead the class discussion of a few papers during the quarter. The exact number of papers "assigned" to each student will depend on the number of students in the class. Needless to say, you need to be in class on the that "your" paper is being discussed.
Final project
Students in the class must complete a research project in the general area of distributed systems. Both a paper describing the project and a poster presentation will be required. This project should be the results of somewhat original research (strongly preferred) or a strong survey of prior art in a focused area. Reporting work done for another course is not acceptable. If you wish to get an A in the class, you must do an original research project; a student who does a survey will receive a maximum grade of B.
There will be checkpoints every two weeks during the quarter to keep you on schedule to complete your project. The checkpoints are:
- Oct 6th: project topic chosen
- Oct 13th: bibliography complete
- Oct 27th: research plan complete, implementation started
- Nov 17th: implementation complete (or nearly so), experiments planned and (preferably) underway
- Friday, Dec 2nd: paper due
- Week of December 5th (TBD): poster presentations to the class (open to School of Engineering)
For each checkpoint, you're expected to submit a few paragraphs describing your progress. For the Oct. 13th checkpoint, please submit your bibliography. Obviously, the last two checkpoints require more work; they'll require a paper or poster
More details and sample project topics will be available during the first week of class.
Attendance
Class attendance is mandatory. Because this is a graduate class, I expect students to participate actively in class, and that's hard to do if you're not actually there. I won't take attendance at class (except as necessary to make the registrar happy), but you cannot pass if you miss too many classes. If you need to miss a class for a good reason, such as a conference or other research-oriented commitment, please see me in advance if possible.
Much of the course material, including assignments and lecture notes, will be posted on the class web pages. However, you're responsible for all material covered in class, whether or not it appeared on the Web site. If you miss a class, I suggest you ask either a fellow student or me to fill in any material you may have missed.
Grades
Your grades will be determined as follows:
- Final project: 55%
- Class participation and summaries: 25%
- Paper presentations: 20%
You must turn in a final project in order to pass the class.
Collaboration vs. cheating
This is a graduate seminar—I expect that you will discuss the material with other students in the class and perhaps others outside the class. This is encouraged. However, all paper summaries must be your own. If you turn in a summary written by someone else, you will receive a -2 for that summary. If this happens more than once, you will fail the class and formal cheating procedures will be begun.
You're encouraged to use any resources (code, traces, etc.) you can get for your projects, as long as you properly attribute them in your paper. Science is built on properly crediting those whose work you use; failure to do this will not be tolerated. Improper use of others' work in your project will result in a failing grade in the class, but it's not as bad as improperly using others' work in your own (independent) research, which can earn you (relatively) permanent disgrace. In short, attribute everything! If you're not sure about the ethicality of something, feel free to talk to me before you do something.
Last updated 22 Sep 2005 by Ethan L. Miller (elm-at-ucscXd0tXedu)