CS560 -- Operating Systems

Jim Plank --- Spring 2010

See the lecture notes page for a list of topics for the final exam.


  • The lab home page (this is from 2009, but has some useful information)
  • General Information
  • Tentative Syllabus
  • Labs
  • Lecture Notes
  • Tests
  • Class Calendar
  • Final Grades

    Introduction and Class Goals

    This is a standard operating systems class. The goals are for you to learn concepts in the design, implementation and performance of operating systems. Lectures will follow the text in Silberschatz and Galvin's ``Operating Systems Concepts''. You may use any edition numbered 4 or higher. The labs involve intensive programming. The first three labs are standalone assignments as in CS360, and the rest involve programming a real operating system, which we call JOS.

    The following are the goals that I have set for teaching this class -- they represent what I'd like you all to get out of the class. When the semester is over, go over this list, and see how well these goals were met. If you feel like it, send me email with comments -- it's more useful after the semester than in the middle of it, I think.

    1. To understand operating system design.

      This means that you know what an operating system is, where it fits into most computer systems, and what interface an operating system is likely to present to users.

    2. To understand operating system implementations.

      Programming operating systems is much different from programming other applications. At the end of this class, you should have a feel for what such low level programming entails, and how it differs from other types of programming.

    3. To understand operating system performance.

      The decisions that are made during the design of an operating system affect the performance of the system. At the end of this class, you will understand how each aspect of the operating system affects performance, and how design tradeoffs often lead to performance tradeoffs.

    If you are considering a career that involves programming computers, you will need to understand operating systems. This class provides such fundamental knowledge.