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

Latest Announcements

5/19: Final grades submitted to registrar.
Have a nice summer!
5/19: Exam scores and final project scores posted on egradebook
The comments on those assignments on egradebook give you some information about the grading. Here is roughly what it says. For the final exam, the mean was 69.55, the standard deviation was 11.79, and the high score was 93.5. For final projects, we graded them with letters and then mapped them to particular numbers. The mapping is listed on egradebook. By the way, many of you did a really nice job on the projects. We (Namrata and Mike) were both excited and impressed by what you put together.
5/18: Final exam and solutions posted on exams page
Grades will be filed by tomorrow evening at the latest.
5/16: Exam details
The study session notes have most of the details. The emphasis will be on the second half of the semester, but the first half will be covered.
5/16: Notes from study session posted here and on schedule page
5/13: Sample finals and solutions posted on exam page
Note, though, that this year's exam may not hew closely to the format of the samples.
5/13: 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 60 lines per side (which is a busy single-spaced sheet). Please do not exceed 1 inch margins, even if it means that you cannot fit 60 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/11: Office hours during finals
Here are the remaining office hours:
  • Friday, May 15: 2:00--3:00 PM (Mike)
  • Monday, May 17: 4:00--6:00 (Mike)
If neither of these times works for you, you can either bring your question to Sunday night's study session or email to set up an appointment. We are excited to discuss the course material and help you prep for the exam, so if you have questions or uncertainties about the material, definitely drop by. However, please do not ask questions of the form, 'Do we have to know X?' or 'Will Y be covered?' The answer to these questions will always be the same: if it was covered by the course material, it is fair game for the exam.
5/6: The story of Mel
You may enjoy the story of Mel, a classic folk tale. Recently, people (re)learned that Mel is real.
5/6: Room and time announced for final study session
Final study session (like a review but different, given university policies) is Sunday, May 16, 7:00-9:00 PM, TAY 3.128

See all announcements RSS 2.0 feed

Course information

Description and goals

This course is an introduction to operating systems.

The goals are for you to learn three sets of interrelated things. The first thing is how operating systems and, more generally, computers work. A student graduating with a CS degree should believe "there is no magic": they should be able to describe the chain of events that occurs when they hit a key and cause a letter to appear on the screen from the register level (or logical gate level or transistor level) to the system architecture level to the operating system level to the application level. This is philosophically important, but it is also of practical interest to developers who need to figure out how to make a system do what they want it to do.

The second goal is for you to learn the core ideas in operating systems: virtual addressing, memory protection, concurrent programming, file systems, scheduling, transactions, etc. Often, but not always, such ideas are best explained as abstractions that some software layer (usually the operating system) provides above imperfect hardware to make that hardware usable by programmers and users. The intent is for you to understand such abstractions well enough to be able to synthesize new abstractions when faced with new problems.

Many of the ideas and abstractions that we will cover are relevant not only to OS kernels but also to many large-scale systems. Thus, a third goal of this course (which is more like a beneficial side effect) is to enhance your ability to understand, design, and implement such systems.

The work

Besides twice-weekly lectures, the class will consist of assigned readings, labs, homeworks, and exams:

A note about the labs

We recommend that you start the labs early!



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

Last updated: Wed May 19 22:58:07 -0500 2010 [validate xhtml]