CS 372H, Spring 2012: Introduction to Operating Systems:
Honors

Latest Announcements

5/18: Final grades have gone to the registrar.

The class is over. Have a nice summer!

5/18: All scores posted. Final grades will go to registrar soon.

Final exam scores are on blackboard. Final project scores are also on blackboard and so are participation grades. The latter two are out of 10. A 10 on the project was a truly outstanding project. A 9 was competently executed, with some flaws. An 8 meant that there were some major flaws and/or a fairly big gap between what was promised and what was delivered. Etc. The scores for participation/preparedness we determined by looking at your "accuracy" (roughly, your ratio of right to wrong answers this term), at our subjective sense of your classroom contribution, and at attendance.

5/11: Solutions to final exam posted

Solutions to the final are posted on the exams page. Please let us know if you see any errors.

5/7: Final will be closed book, but you can bring TWO two-sided sheets of notes

As with the midterm, you may bring sheets of notes. Note that whereas for the midterm you had ONE two-sided sheet, for the final, you may bring TWO two-sided sheets, for a total of four sides of printing. As with the midterm, we have formatting requirements for each sheet. Here they are: Times New Roman font, minimum 10 point font, minimum 1 inch margins on all sides, maximum 55 lines per side (which is a busy single-spaced sheet). Do not exceed 1 inch margins, even if it means that you cannot fit 55 lines per side. If you use handwriting, same deal: your handwriting should be no smaller than 10pt, your margins should be at least 1 inch, etc., etc.

5/7: Part II of the CS372H poetry series: The Halting Problem's undecidability, in poetry

The halting problem came up a few times this semester; this poem presents it perfectly.

If you have
questions about the labs, please email the staff mailing list, not
either of the staff members individually.

Description and goals

This course is for students who want to hack on operating systems and
more generally learn how they work. Class meetings will cover operating
systems, advanced topics in systems, and research papers (both classic
and recent). A significant fraction of classes will involve discussion.
A crucial component of the course is the labs: students will implement
the core of an exokernel- or microkernel-style operating system, called
JOS.

The work

The lectures will cover topics in operating systems and
advanced topics in systems.

Some class meetings will be discussion days instead of
lecture. On those days, students are expected to come prepared, and will
be randomly called on. This ensures equitable participation and
encourages students to keep up. The format and expectations for these
classes are described here.

The labs are described in more detail here. You will
implement (the interesting pieces of) a real operating system that will
boot on a PC.

The readings
should be completed before class. Some are assigned, and some are
called background. The latter type provides background
that we will assume you have. See below for more detail.

The homeworks serve a similar function to the background
readings (and some of you will have seen the homework problems before).
Unless a problem is announced as specifically required (in which case it
counts in the participation and preparedness component of your grade),
it is not required. However, we will build on this material.
Moreover, if the homework problems are new to you, then they will be
valuable and perhaps necessary exercises. Note in that case that
delaying the homeworks with the intent of accumulating them and solving
them at once before the exams is not likely to be an effective strategy.
Do them on time! (These homeworks shouldn't be confused with the labs
and their included exercises.)

The background sections, led by Jason, serve a similar
function to the background readings and the homeworks. Attendance is not
required, but if you did not take 439H or 372, you should go. You should
also go if you feel a bit shaky on the knowledge that we are assuming.

Finally, you are responsible for checking the announcements (either on the site
or by RSS) every 24 hours.

A note about the labs

We recommend that you start the labs long before they are due. The
standard advice is "Start the labs early", but that is not quite right.
The best advice that we know of is "Start the labs on time, but on time
is probably much earlier than you think".

Readings and references

There will be two kinds of readings in this class: required and
background. The background reading covers foundational material that we
will assume that you know. Do you have this background? Should you do
this reading? One guideline is this: if you've taken CS439H, CS372, or
the equivalent, you probably already have this background. However, you
may wish to look over this reading anyway just to make sure. If you've
taken only CS352 or CS352H, then you should probably do this reading.

Required: readings listed on the schedule page

Background: readings listed on the schedule page, most of which will
be from this textbook:

Modern Operating Systems (third
edition), Andrew S. Tanenbaum. (Prentice Hall, Inc., 2008. ISBN:
0-13-600663-9.) If you don't want to buy this edition, note that it
should be on
reserve at PCL. Also, the second edition of the book will probably be
fine, but we cannot guarantee that.

Optional: Principles of Computer System Design: An
Introduction, Jerome Saltzer and M. Frans Kaashoek (Morgan
Kaufmann, 2009. ISBN: 0-12-374957-3.) This book may be a useful reference. It too
is on reserve at PCL.

Optional: Operating System Concepts (eighth edition), Abraham
Silberschatz, Peter Baer Galvin, and Greg Gagne. (John Wiley & Sons,
2008. ISBN: 0-47-012872-0.) This book may be a useful reference. It too
is on reserve at PCL.

Optional: The C programming language (second edition), Brian W.
Kernighan and Dennis M. Ritchie. (Prentice Hall, Inc., 1988. ISBN:
0-13-110362-8.) This book is a classic reference to C. It too is on
reserve at PCL.

We made the reserve requests in the first week of class. If you
have problems retrieving the books, please let the course staff
know.

Acknowledgements

We are indebted to the present and past staffs of related courses
elsewhere:
UT, MIT, UCLA, and Stanford.