CS411/511 - Operating Systems
Course Description
Spring 1999

Prerequisite: CS 311
Meetings: 9:00-9:50 A.M. MWF
Web address: http://www.cs.orst.edu/~cs411
Maillist: class-cs411@engr.orst.edu
automatically creates Web archive of messages
Textbook: Operating System Concepts, **Fifth** Edition (brand new), by Silberschatz & Galvin (Addison-Wesley, 1998)
Professor: Dr. C. Pancake, pancake@cs.orst.edu
Dr. Pancake's Office Hours (Dear 219A): M 1:30-2:30
W 8:00-8:50
F 10:30-11:30
or by appointment
Teaching Assistant: Keith Vertanen, vertanen@cs.orst.edu
Keith's Office Hours
(Dear 115 lab):
T 11:00-12:00
H 3:00-5:00
or by appt.

Course Objectives:
In this course, we will study the principles that dictate the functionality and usefulness of operating systems. An understanding of operating system (OS) concepts is one of the things that makes the difference between professional computer scientists and other programmers. We have all come to rely on distributed, event-driven systems that join computational engines with file systems, print servers, network communications, and a host of other services that are supplied by OS's. This course will help you gain awareness of the special problems in managing shared resources, as well as the safeguards that can be used to deal with them. The programming assignments will give you some hands-on exposure to how OS components interact. You will find that OS concepts are fundamental to your ability to effectively maintain and trouble-shoot system problems that arise even in the course of normal application development.

Letter grades will be assigned on a 10-percentage-point scale. Four types of grades will be used to evaluate your performance in this course: Quizzes and Homework 10%, Midterm Exam 30%, Programming Assignments 25%, Final Exam 35%.

The homework questions are graded in "binary" fashion: if you turn in an answer of appropriate complexity, you will receive full credit (whether or not you got the answer right). Answer keys will be posted.

Any student whose total exam score is below 60% will receive an F, even if the overall total exceeds 60%. Also note that no makeup exams will be given. It is your responsibility to keep on file all returned homework and exams in the event that there is any question about your grade.

Objectives and Requirements for CS511:
CS511 is intended for graduate students who have not already taken a CS411-like course as undergrads. If your undergraduate background includes a CS411-like course, it is not necessary to take CS511, since the material is almost the same.

However, to justify giving graduate credit to graduate students who do take this course, CS511 students are expected to come away with a deeper understanding of the material than those enrolled as undergraduates. To accomplish this goal, there will be a greater emphasis on theoretical aspects and on more advanced issues in using the same concepts. This greater emphasis will occur through (1) additional, more substantive homework problems, some of which will be graded for quality (i.e., not the "binary grading" of above), (2) each of you will lead a few small (e.g., 2-5 minute) in-class explanations of some of these substantive problems, and (3) there will be additional questions on the tests. The additional homeworks will be factored into the "Quizzes and Homework" category above, the in-class explanations will be factored into the "Programming Assignments" category above, and the tests will be evaluated using different criteria for CS511 students than for the CS411 students.

Commonly-asked Questions:
Q. What operating system will I learn?
A. We will not concentrate on any one OS. Instead, the goal is to learn about the fundamental concepts behind all OS's, using examples from a variety of different systems. This will give you the background you need to be able to adapt to any OS - past, present, or future - that you may encounter in your career.

Q. When are homework assignments due?
A. Homework is due at the beginning of class on the date indicated. There is no credit for late submissions.

Q. What's this about "quizzes"?
A. Hopefully nothing. There will be "review questions" (from the end of chapters in the book) that you are expected to work out. You don't turn them in. They will help you keep on schedule with the readings and help you pass the tests. To make sure you are working on them, we will discuss 1 or 2 in class every once in a while. If nobody can discuss them in class, we will have to switch to regular graded quizzes over them.

Q. How much programming will there be?
A. 3 or 4 assignments. Programs are due at the time and date indicated on the assignment. All assignments must be submitted on time (complete or not). Partially completed assignments may receive some partial credit, but late assignments receive no credit.

Q. What language will I be programming in?
A. Most or all of your assignments will be in C (not C++). Most assignments will involve writing small piece(s) of an operating system; these parts will be glued into an operating system simulator that is compatible only with C.

Q. How picky are you in grading programs?
A. We are in the College of Engineering. A bridge is not a bridge if it doesn't make it to the opposite shore, and a program is not a program if it doesn't compile and run. If the program you submit for grading doesn't run, you'll get a zero. Therefore, develop assignments incrementally so that you always have something that you can turn in -- and that works, even if it's not the complete assignment.

Q. Can we work together on assignments?
A. No. Plagiarism is interpreted very strictly in this course. Your homework answers and your source code must be uniquely your own. Since violators will be charged (in accordance with departmental policy), you should be careful to guard both printed and on-line versions of your work.

Q. Where do I go with questions?
A. The TA (Keith) i handles all questions and help concerning the programming assignments. Both Keith and Dr. Pancake handle questions about the homework. Dr. Pancake handles all other questions and help about the lecture materials. If you have a question about a grade, see the next question.

Q. What if I think my work has been graded incorrectly or unfairly?
A. For projects and homework, first discuss the matter with the TA (Keith), and if after doing so you still feel the matter is unresolved, then discuss it with Dr. Pancake. For tests, discuss the matter with Dr. Pancake. In all cases, you must raise the issue within 1 week of having the work returned to you.

Academic Honesty
Projects: The projects are not team projects, so each one must be written individually. We do, however, encourage you to help each other learn. So answering each others' questions about how to do things is encouraged.

So, how can you tell where to draw the line? A good rule of thumb is the "visual aids rule". It is ok to talk to each other, offer advice, suggest techniques, and so on, as long as no visual aids (such as printouts, gathering around a screen to look at code, written code or algorithms, etc.) are exchanged or shared. If any aspect of this is unclear, please refer to the CS Department policy on academic dishonesty (http://www.cs.orst.edu/acad/policies/dishonesty.html).

Binary-graded homeworks: The rules are the same as for projects. (Note: Many of these are "think" questions, so by far the most benefit comes from thinking them out, not in the answer that is ultimately turned in.)

Fully-graded homeworks: The rules are the same as for projects.