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

Latest Announcements

5/20: Final grades submitted to registrar.
Have a nice summer!
5/20: Final project scores posted to egradebook
We assigned these scores out of 10. A 10/10 was a truly impressive or surprising project. A project that met its deliverables with a few flaws was a 9/10. A project that had some issues, like not running in many cases or being buggy in important cases, was an 8/10. We also gave half-points. Etc. We found most of the projects inspiring, even the ones that lost points; there was just a lot of coolness in this year's projects.
5/18: Final exam scores posed and final exam statistics
The statistics for the final exam are: mean 67.3, median 74, high score 90, std. dev 15.4.
5/12: Final exam and solutions posted on exams page
Here is a link to the solutions.
5/10: Mike's last-minute office hours will be 4:00--5:30 PM Thursday evening, May 12
5/8: Exam details
Most of the details are in the notes from the review/study session. The emphasis will be on the second half of the semester, but the first half will be covered.
5/8: Notes from review/study session posted here and on schedule page
5/4: The story of Mel
You may enjoy the story of Mel, a classic folk tale. Recently, people (re)learned that Mel is real.
5/4: 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). Please 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/4: Reminder about final review session this Saturday
Review session for the final is this Saturday, May 7, 6:00--8:00 PM in BUR 220

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. Students graduating with CS degrees 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:

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".



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

Last updated: Fri May 20 04:51:07 -0500 2011 [validate xhtml]