Operating Systems
General Information
Fall 2018

Course at a glance


An "operating system" is a program that controls the overall function of a computing system, including managing the execution of other programs. In this course, we will study all aspects of operating systems, including: We will build to the last goal through complete and thorough pursuit of the others. During the course, the first three goals will be intertwined and inseparable; practice follows theory and code must be based upon algorithms conformant with the theory.


We will rather strictly follow Stallings, except that lectures will focus upon the specifics of Linux/UNIX rather than the more general treatment in the book. Also, you will (hopefully) find the course notes to be a valuable online resource, and several lectures are based directly upon the linux online manual (available on any workstation).

Frequently asked questions about textbooks:


Prerequisites for this course include some course in architectures (e.g., either EE14 or Comp40) as well as competence in some high-level programming language such as Java or C or C++. UNIX and Linux are written in C for some rather good reasons; we will thus be writing C code during the course and will cover the details of C and its intimate relationship to UNIX and Linux in the first few lectures.

The class this term is comprised of EE14 graduates and Comp40 graduates. I will do my best to serve both populations. Note that the differences between the prerequisite courses will give you advantages in some things and disadvantages for others. For example, Comp40 students have more programming experience, while EE14 students tend to understand architecture better than Comp40 students. I will assign projects that draw on the strengths of each population.

Frequently asked questions about prerequisites:

Your instructor

I can take some getting used to as an instructor, because I do not function by the same rules as many other instructors. First, I do not teach from authority. I do not consider myself smarter than you. In fact, I am quite sure that you know more than I do about some things. What I have to offer, instead, is 30 years of experience in the discipline, and some proven approaches to developing understanding.

I do not teach from authority because I do not need to. Physical law is my authority, and I can demonstrate everything I claim either experimentally or mathematically. In a systemic and deep sense, I am fundamentally a scientist, dedicated to the truth and to teaching you how to find it for yourself.

This means that, among other things:

The last one of these is -- in fact -- the key to everything we will do.


For assignments, we will be using the provide submission system (that I wrote:). To submit an assignment for grading, one types
provide comp111 assignment files...
where assignment is the assignment name (e.g., a1) and files... is a list of files to be graded.

To check on your grades for an assignment, type

progress comp111
for a summary report.

Grading and lateness

Assignments are graded on correctness, using a scale from 0 to 10. An (automatic) lateness penalty applies for assignments turned in late; this is typically one point deducted (10%) for each week late or fraction thereof. If an assignment is due Wed at 11:00 pm, then one point is deducted if it is turned in after 11:00 pm on Wed and before 11:00 pm on the next Wed. Two points are deducted if it is turned in after that, and before the following Wed. Late penalties are not incurred on holidays. Complaints about assignment grading must be accompanied by working code and/or correct solutions:)

In-class exercises are graded on participation and effort. Part of each exercise is open discussion with other class members. Thus one may not turn in exercises late, because part of the exercise credit is awarded for discussing the possibilities with others!


In this course, you are expected to work on your own on each assignment. Working in groups on an assignment constitutes plagiarism. Discussion is encouraged, provided that no code or explicit answers are shown or copied. Plagiarism can be detected and will be reported to the Dean of Students.

Approximate Syllabus

We will be going through the whole of Stallings, more or less in order. Not all material in the book will be covered in lectures, but you will be responsible for that material on exams. Instead, lectures will include practical information on the relationship between book concepts and Linux/Solaris. For a more detailed syllabus, click on the "Timeline" link from the course homepage. Course lecture notes are also available in real time from the course's OneNote page, via the link on the home page. These update as I lecture.