• [Fri Dec 14] If you want more sample questions to review for the final exam, here are some: Processes, More Processes with Solutions, Memory with Solutions and File Systems with One Solution
  • [Wed Dec 12] The sign-up sheet for Project 4 testing is now available. You must sign up for a 15 minute time-slot on Friday to have your project graded with the TA in her office. Both project partners should show up.
  • [Tue Nov 27] The reading for Thursday of FFS is available.
  • [Mon Nov 26] Project 4 is available.
  • [Wed Nov 21] The sign-up sheet for Project 3 testing is now available. You must sign up for a 15 minute time-slot on either Monday or Tuesday to have your project graded with the TA in her office. Both project partners should show up.
  • [Tue Nov 20] Gwendolyn's Wednesday office hours are cancelled this week.
  • Old news is here.


This course assumes familiarity with basic computer organization (e.g., processors, memory, and I/O devices as covered in cs354) and data structures (e.g., stacks and hash tables). You will need to be able to program in C (not C++, and definitely Java) to perform the assignments in the course. If you don't have much experience in this language, don't worry: we will spend some time covering background, but of course, learning on your own is important and valuable (in this class and in real life). For those of you who are new to C (e.g., you just know Java), realize this is an opportunity to broaden your skill set!


We recommend coming to class and following along with the class notes (which are available below online). I think it is fine to read the book in the background (e.g., after we cover a topic in class), both to fill in your knowledge and to get a different perspective on operating systems.

You should have a copy of the following textbook:

Operating System Concepts (7th Edition)
Silberschatz, Galvin, Gagne
ISBN: 0-471-25060-0
You must use C on the system programming assignments in the class. The best C book in the world is Kernighan and Ritchie's beautifully sparse The C Programming Language. It is worth purchasing.
The C Programming Language (2nd edition)
Kernighan and Ritchie
ISBN: 0-13-110362-8 (paperback)
Prentice Hall

Mailing Lists

Important announcements will be sent to the class mailing list, so please read your mail frequently (particularly around project time)! You are responsible for the material sent to that list. The mail sent to the class list is also archived. Note that the class list is automatically generated based on who is enrolled in the class and sends mail to your account; you should forward your mail appropriately from that account if you want to read it elsewhere.

You can check the archives to see if you've missed anything.

We will be using mailing lists to communicate questions and answers about the projects. If you have questions about the project, please them to cs537-q "at"; these questions will go to both the TA and the instructor. We will then send our reply both to you and to the mailing list, cs537-a. If you would like, you can subscribe to this mailing list, using this web page. The answer mailing list is also archived.


As part of this course, you will complete four intensive programming assignments. More details are available here.

Project 1 -- The Unix Shell
Project 2 -- Multi-threaded Web Server
Project 3 (Not yet available).
Project 4 (Not yet available)).


In this course, there will be no midterm exam and an optional final exam. Instead, to help you learn the material incrementally, each week there will be a 15-30 minute quiz in the discussion section. Material for the quizzes will be taken from the lecture material, reading, and projects. Each quiz may include any material covered up through and including the lecture on the previous day. For each quiz, you are encouraged to create a single page "cheat sheet" (8.5 by 11 inches) filled with any information that you think will be useful; you can use both sides. Quizzes are otherwise closed-book and closed-note. To help you prepare, we will provide ungraded problem sets similar to the quiz questions. We will also drop your lowest quiz grade from your average.

More information to help you prepare for the weekly quizzes is available.


The formula for your course grade depends upon whether or not you elect to take the final exam (which you will decide during the last week of classes). If you decide to take the final exam, you cannot change your mind, even if taking the final exam makes your course grade lower.

Without final exam: With final exam:
Projects 50% 40%
Quizzes 50% 35%
Final exam 0% 25%

The grading scale is not curved and will be as follows (with some discretion on my part, especially on the lower end of the scale):

Average Letter Grade

Late work causes trouble for us and trouble for you -- if you get behind at the beginning of the quarter, you won't have enough time for the harder assignments at the end of the semester. Therefore, turning assignments in on time is strictly enforced: we simply will not accept any late assignments.

Tentative Schedule

See this page for the schedule for the semester.
If you have questions or comments or just are up late, send mail; we may even reply!