Computer Science | School of Engineering | UC Santa Cruz
Home | Syllabus | Schedule | Reading List | Project

CMPS 221: Advanced Operating Systems
Fall 2011

Syllabus

Time: Tuesdays & Thursdays 10:00–11:45 am
Location: Crown Classroom 105
Instructor: Prof. Scott A. Brandt (scott@cs.ucsc.edu)
Office: E2 347B
Hours: TBD
Prerequisites: CMPS 111 or equivalent
Home page: http://www.soe.ucsc.edu/~sbrandt/221

Course Description

This course is a graduate level study of the principles, key ideas, and issues in the design and implementation of computer operating systems. The readings are taken from articles of historical significance and the current research literature. The topics include, but are not limited to:

  • Early systems
  • Kernel structures
  • Memory management
  • File systems
  • Authentication, protection, and security
  • Synchronization
  • Performance evaluation
  • Reliability and fault tolerance
  • Communication and distributed systems

The course proceeds by topic, beginning with systems of historical significance.

Preparation

You are expected to have basic operating system knowledge, such as that covered in an undergraduate course like CMPS 111. Exceptional undergraduates may be admitted with the permission of the instructor.

Course Requirements

Readings

The course is structured around a reading list of representative papers in various areas of operating systems. We will cover 2–3 papers per class, for a total of 40–50 papers over the term. It is essential that you read each paper before the class in which it will be discussed. Most of the papers are available online, but are password-protected. The password will be distributed in class.

Before the class in which each paper will be discussed you must prepare a short summary for each paper. Summaries must concisely answer the following questions (just copy this template and answer each question in the appropriate place):

Name:
Paper:

  1. What is the problem the authors are trying to solve?
  2. What other approaches or solutions existed at the time that this work was done?
  3. What was wrong with the other approaches or solutions?
  4. What is the authors' approach or solution?
  5. Why is it better than the other approaches or solutions?
  6. How did they test their solution?
  7. How does it perform?
  8. Why is this work important?
  9. 3+ comments/questions

A sample summary can be found here. Summaries must be prepared in plain (ASCII) text, and are due by email at 10:00 am on the day that the paper will be covered. Your email must have the subject, "CMPS 221 Summary: {paper_title}" where {paper_title} is (obviously) replaced with the title of the paper. As it is essential to read the papers before class and the primary purpose of the summaries is to focus your thinking about the papers in preparation for discussion them, late summaries will not be accepted.

There are more papers than we have time to cover in class. As a result, there will be optional readings on the reading list. You are not required to read these papers, but are encouraged to do so. Even including the optional readings, the reading list is far from exhaustive. Students are encouraged to do their own research as well.

Project

You will be required to write a report on a topic in the area of computer operating systems. This report should be the results of a project, original research (preferred), or a strong survey of prior art. Reporting work done for another course is not acceptable. In developing your project you will be required to submit a proposal, design, etc. at regular intervals throughout the quarter. Additional information about the project is available elsewhere on the course web site.

Exams

I do not currently plan to have exams in this class. However, if people do not seem to be doing the readings or are not actively participating in the discussion, I will give exams.

Grades

Your grade in the course will be computed as follows (unless we have some exams, in which case this will change):

  • 50% for the paper summaries and participation in class discussion
  • 50% for the project

I typically assign an A to those students whom I believe are doing PhD-level work in systems. Those who are doing masters-level work in systems (nearly all grad students are capable of this) receive a B.

If you want to get an A in class, you may miss no more than one class worth of paper summaries. If you miss more than four classes worth of paper summaries, you cannot receive a B in the class. You must turn in summaries even if you will not be attending class—the only valid excuses for not turning in your summaries on time are serious illness (with a note from your doctor) or something equally bad. The papers are all available online; if you think you won't have time in a particular week, read the papers ahead of time.

Your project will be graded on both content and presentation (both written and oral/poster). Those who do survey papers are limited to a maximum class grade of B.

Academic Integrity

"If I have seen further than other men, it is because I have stood on the shoulders of giants."
— Isaac Newton

This is a graduate course, and most or all of you are graduate students. As such, you will be doing a large amount of research during your graduate careers. Research is built on a foundation of citations and attributing the contributions of others. This means that all of the work you turn in must be your own. If you get ideas or material from any source other than your own mind, you must cite that source. Failure to do so constitutes plagiarism and will not be tolerated—you will fail the course. When in doubt, err on the side of caution and cite your source.

Plagiarism in graduate school is far more serious than in college or high school. Your reputation depends on your research and your integrity. You can overcome subpar research by doing better research, but it's much more difficult to overcome a reputation as a plagiarist. In short, don't plagiarize!


Prof. Scott A. Brandt (scott@cs.ucsc.edu)