General Information

Instructor Matt Bishop; Office: 3059 Kemper Hall; Phone: (530) 752-8060
Email:; Web:
Office Hours: MWF 10:00–10:50, by appointment, or by chance
Teaching Assistant Atif Nazir; Office: 55 Kemper Hall (TA Rooms)
Office Hours: to be arranged
Lectures MWF 9:00–9:50 PM in 176 Chemistry
Discussion Section Section 001: W 2:10–3:00 PM in 1204 Haring
Course Outline Basic concepts of operating systems and system programming. Processes and interprocess communication/synchronization. Virtual memory, program loading and linking. File and I/O subsystems. Utility programs. Study of a real operating system.
Course Goals Some goals we hope you achieve:
  1. understand the basic concepts of operating systems, including file management, process management, process scheduling, memory management, process synchronization, deadlock, distributed systems, and protection in a multiprogramming system;
  2. learn about the practical aspects of operating system design and implementation;
  3. apply these concepts to an operating system;
  4. understand what system calls are and how to use them; and
  5. learn the basics of writing security-related programs; and
  6. gain experience in systems programming.
Prerequisite We expect you to be comfortable with the following concepts and able to do the following:
  1. Assembly language programming, as covered in ECS 50;
  2. Basics of computer architecture, especially interrupts, process management, and memory management, as covered in ECS 154A;
  3. Data structures, such as queues, stacks, lists, as covered in ECS 60; and
  4. The C programming language (you will need to use C, not C++).
Text M. McKusick and G. Neville-Neil, The Design and Implementation of the FreeBSD Operating System, Addison-Wesley Professional, Boston, MA (2005). ISBN 0-201-70245-2
Computers All registered students have been given an account on the computer science instructional machines in the basement. If you have not done so already, please change your password from the default as soon as you can. If it is not changed within a week, your account will be disabled and you will have to see a system programmer to have it reset.
Class Web Site The class web site is on SmartSite. To access it, go to and log in using your campus-wide login and password. Then go to ECS 150 in your schedule. Handouts and other documents will be posted there. We will also post announcements there, too. If you do not have access to SmartSite, you can go to the alternate web site at You can download the handouts from that site, but you cannot look at your grades or submit homework there.
Homework All work is due at 11:55PM on the date stated on the homework, unless otherwise stated. See the handout All About Homework for more information.
Extra Credit Extra credit in this course will be tallied separately from regular scores. If you end up on a borderline between two grades at the end of the course, extra credit will count in your favor. However, failure to do extra credit will never be counted against you, because grades are assigned on the basis of regular scores. You should do extra credit if you find it interesting and think that it might teach you something. Remember, though, it is not wise to skimp on the regular assignment in order to do extra credit!
Homework 25%
Lab Exercises 25%
Midterm Exam 25%
Final Exam 25%
Exams Midterm: Friday, May 2, in class
Final: Monday, June 9, 6:00PM–8:00PM
These are closed book/closed notes exams. No early or late exam will be given; if you miss an exam for medical reasons (you must document this; no other excuses are acceptable), you may be allowed or required to take a make-up exam, or the other parts of the course will be counted proportionally more (the choice is the instructor’s). In particular, forgetting the time or place of an exam is not an excuse for missing it!
Academic Integrity Please see the Spring 2008 Class Schedule and Room Directory for a general discussion of this. In particular, for this course:
  • All work submitted for credit must be your own. You may discuss your assignments with classmates, with instructors, or with teaching assistants or readers in the course to get ideas or a critique of your ideas, but the ideas and words you submit must be your own. Unless explicitly stated otherwise, collaboration is considered cheating and will be dealt with accordingly.
  • For written homework, you must write up your own solutions and may neither read nor copy another student’s solutions.
  • For programs, you must create and type in your own code and document it yourself. Note that you are free to seek help while debugging a program once it is written.
A good analogy between appropriate discussion and inappropriate collaboration is the following: you and a fellow student work for competing software companies developing different products to meet a given specification. You and your competitor might choose to discuss product specifications and general techniques employed in your products, but you certainly would not discuss or exchange proprietary information revealing details of your products. Ask the instructor for clarification beforehand if the above rules are not clear.

You can also obtain a PDF version of this. Version of March 28, 2008 at 9:06PM