CPS 210
Operating Systems

About CPS 210

Who should take this course. All CS graduate students should take this class, particularly if you are interested in systems or architecture. This course offers an opportunity to extend your knowledge of operating system internals, architectural interactions, and distributed systems. This course will also give you a taste of contemporary systems research and a peek at future advances in this exciting area.

Preparation. You should be familiar with undergraduate-level operating systems and computer architecture. If you have not taken the relevant courses, you may need to spend more time with the textbook and exercises. You are expected to program in C and C++ on Unix systems in CPS 210. If you do not have a CS account, notify the instructor by e-mail and we will create one for you.

Readings. This semester we will take background readings from the basic textbook, Modern Operating Systems by Andy Tanenbaum. We will also read a number of research papers and other materials available on the Web.

Base Workload. In addition to the readings, there will be 3-5 labs and/or problem sets (45%), three exams (45%), and an "exit interview" during which you will meet with me individually and have a conversation about operating systems. The final interview, class participation, and other "subjective factors" are worth 10% of your grade.

The E-track, Grading, and Quals. This is a two-track class. Assigned work includes mandatory "G-track" components and some optional "E-track" components. The E-track work is necessary if you want to earn a grade of E or E+. You may choose at any time to do any or all of the optional E-track work, but it is not likely to improve your grade much unless you take on the primary E-track requirement, a project on a topic of your choosing (see below). This will demand a significant commitment of time and energy on your part (and ours).

CPS 210 is a quals course for CPS graduate students. We assign quals passes based on demonstrated mastery of the quals material, regardless of your grade. In particular, E-track work is not necessary for a quals pass and will not improve your chances of earning a quals pass. The E-track is intended for students with a serious interest in systems. In particular, if you invest the effort in a good research project, the benefits will carry well beyond your grade in this class. If you decide to take on E-track work, make sure you also leave yourself enough time to learn the course material and earn your quals pass.

Grades will be assigned by adding your scores on the G-track work and exams, and assigning base grades curved from G- to E-. Your scores for the E-track work are then added and curved to improve your base grade from 0 to 3 notches (e.g., 3 notches advances you from a base grade of G+ to a final grade of E+). I give S grades only for barely satisfactory work, since graduate students cannot receive credit for more than two S grades.

To summarize: if you do an outstanding job on all the G-track work, you'll get an E- and a quals pass; if you do a good job on the G-track work you'll get a G or a G+ and a quals pass; if you do good work in both tracks you'll get an E- or an E and a quals pass. I reserve E+ grades for truly outstanding students.

The deadline for proposing an optional project is February 20. I encourage you to form groups of two or perhaps three students for the projects. At the end of the reading period you will post the URL of a web page describing your project, with pointers to your code and related material. Projects and other E-track work are held to a high standard; incomplete or incorrect work will receive little if any extra credit. A good project produces research results that of interest to active researchers in the field, presented at the depth of a standard conference paper.

Policy on collaboration for CPS 210. Collaboration on problem sets and programming assignments is encouraged. Help each other. However, your final written work must be your own, and you may be called upon to explain (alone) your choices and answers in more detail. You must acknowledge the sources of your words and ideas when they are not your own, and you should list the names of anyone who helped you with your work. Failing to do so is at best a violation of professional etiquette, and at worst it is plagiarism. Plagiarism, like collaboration on exams, is cheating. Cheating is a very serious offense and I do not expect it to occur in this class.