So that even now the machines will only serve on condition of being served, and that too upon their own terms; the moment their terms are not complied with, they jib, and either smash both themselves and all whom they can reach, or turn churlish and refuse to work at all. How many men at this hour are living in a state of bondage to the machines?
Samual Butler, Erehwon
This an introductory course in operating systems concepts. The course is divided into seven two-week sections, with each section covering a major part of an operating system. See the schedule for details.
You should be a proficient programmer and have a working knowledge of basic algorithms and data structures. The prerequisites for this class are
The class meets in Howard Hall 209 on Mondays and Wednesdays from 6:00 to 7:50 p.m. Monday, 26 March, is the last day you can withdraw from the class with a W. There will no be class on Monday, 12 March and Wednesday, 14 March (Spring break).
There are four programming assignments, one every three weeks starting with week three (section 2); see the project description and the schedule for details.
There are no mid-term or final exams. For those that need them, mid-term grades will be computed as the straight, unweighted average of the test and programming assignment grades completed by the mid-term.
The final grade is a straight, unweighted average of the six highest test scores and programming assignment grades; that is, there are six grades total - the lowest grade is dropped - and each remaining grade constitutes one-sixth of your final grade.
I use the usual grade ranges:
Undergraduates (438): Graduates (505):
95 ≤ A 90 ≤ A- < 95 86.6 ≤ B+ < 90 83.3 ≤ B < 86.6 80 ≤ B- < 83.3 76.6 ≤ C+ < 80 73.3 ≤ C < 76.6 70 ≤ C- < 73.3 60 ≤ D < 70 F < 60
95 ≤ A 90 ≤ A- < 95 86.6 ≤ B+ < 90 83.3 ≤ B < 86.6 80 ≤ B- < 83.3 76.6 ≤ C+ < 80 73.3 ≤ C < 76.6 70 ≤ C- < 73.3 F < 70
All grades are kept with one digit of precision to the right of the decimal point and 0.05 rounded up. No grades are adjusted to a curve; that means that 89.9 is always B+, never an A-.The final grades.
There are many operating systems textbooks, all more or less the same. This course has a textbook, but it doesn’t have an assigned textbook. Instead, pick a textbook or two you’re comfortable with. As a first cut, compare the book’s table of contents with the schedule to make sure the topics mentioned in the schedule appear in the table of contents. You can glean further advice from a small annotated bibliography of operating systems books.
Please do not interpret “There’s no assigned textbook for this course” to mean “Great! I don’t need a textbook.” Absorbing everything you need to know from lectures won’t be possible, not the least because there won’t be time to cover everything in lectures. Working it out over a textbook or two will give you the time and space to learn what you need to know. In addition, the tests are written assuming knowledge found in basic operating systems textbooks.
This is a programming course, and you’ll be programming in Java. You should have at hand at least one Java programming language book to help you recover the old details persue futher the new details. The book from CS 175 and 176 (501a and 501b) should be fine. Also recommended are Core Java 2, Vol. 1 — Fundamentals by Cay Horstmann and Gary Cornell, Sun Microsystems Press, 2008. and Java in a Nutshell by David Flanagan, O’Reilly Media, 2005.
Mail relevant to the class will be stored in a
hyper-mail archive (
tinyurl.com/mucsoss12m ). If your message is of general interest to the class, I'll
store it, suitably stripped of identification and along with my answer, in the
tinyurl.com/mucsoss12h). I’ll make the class notes, assignments, and tests available off the schedule at
tinyurl.com/mucsoss12s); you should get in the habit of checking the schedule regularly.
vimeo.com. There's an rss feed for new screencasts. Screencasting is experimental, and lecture availability will most likely be unreliable.
identi.ca/mucsos, rss ) or twitter (
twitter.com/mucsos). The same messages appear on both services.
My attendance policy applies only to lecture attendance; it does not apply to other kinds of attendance which may be required for the course. Repeated failures to meet the attendance expectations set for tests, meetings, projects, labs or other forms of course work will have a bad influence on your grade.
First, the only complaint that matters is that something got marked wrong when it was actually right. When you come to complain, be prepared to present, in explicit detail, what it is you did and why you think it’s right.
Second, complaints about a particular test or assignment are only valid until the next test or assignment is due; after that point the book is permanently closed on all previous test or assignment grades.
A late assignment is penalized ten points a day for each day it’s late. I use a 24-hour clock running from midnight to midnight to measure days; note this means that an assignment handed in the day after it’s due is penalized ten points: five for the day it was due and five for the next day.
A make-up test must be scheduled to be taken by the date of the test following the missed test (or the final exam if you miss the last test). If a missed test is not made up by the time of the next test, you get a zero for the missed test.
There will be only one make up given per missed test. If more than one person misses the same test, those people will have to coordinate among themselves to pick a mutually agreeable date for the make up.
Learn about operating systems from the comfort of your home, courtesy of Berkeley or Notre Dame (via iTunes, unfortunately).
An OS web ring.
OS News, a web site with os news and opinions.
The ER and KeyK OSs from U. Penn.
And let us not forget the dearly departed: OS/2 multics.
And let us welcome the newcomers: V2, the Gemini nucleus, the NewOS, and AtheOS.