CPS 210: Operating Systems
home calendar topics work resources
Class Meetings
WF 1:15-2:30 in D106 LSRC
Instructor
Jeff Chase (chase@cs.duke.edu)
Teaching Assistant
Harold Lim

A summary of material, slides, and the reading list can be found on the topics page.

Final exam: Monday, May 3, 7PM, D106 LSRC. This is a cumulative exam covering material for the entire semester. It is a closed-everything exam: you may bring one standard sheet of paper with as many notes as you can write on it.

Projects. Most of you are discussing/demoing projects during the exit interviews. Please send me a short writeup by e-mailing a PDF or (preferably) a URL for a web page or PDF. I'd love to get long, detailed writeups, but I won't have time to read them, so 2-4 pages is the ideal length. Also, please include a pathname for any code or other artifacts on the CS department file system. (Make sure I have access.) If you insist, you may send me a tarball instead. Projects are due by noon on Wednesday, May 5.

Midterm exam solutions posted.

CPS 210 is the entry course in computer systems for graduate students and advanced undergraduates. Traditionally the course emphasizes classical operating systems topics: concurrency, facilities for storage, communication, and protection, kernel services and structure, architecture/OS interaction, distributed systems, and practical application of operating system concepts in real operating systems. We also explore the nature of "systems" as an evolving research discipline encompassing all aspects of bridging the gap between applications and hardware. To this end we will study selected research papers, focusing on research goals and methodologies.

More broadly, an operating system is software that controls some programmable platform for sharing resources and data. All operating systems must deal with core issues of protection, resource management, program environment and execution, coordination, and reliable state storage and recovery. This semester the course will focus more broadly on examples of operating systems beyond the classical model. We will use the new Saltzer and Kaashoek text Principles of Computer Systems Design (PCSD) as a core text.

course policies

The course material is broken into core topics, advanced topics, and research topics.

Core topics are typical material for a high-end undergraduate operating systems course, along with some crucial topics in distributed systems and networking. Quals passes are based largely on mastery of the core topics. These include a study of canonical system examples that introduce fundamental principles. Examples include:

Advanced topics build on the core topics in some direct way, e.g., recent technology advances, new challenges brought about by changing technology, classic systems research papers, or more detailed studies of real-world examples. Some presentation of core topics in the class will occur as a "side effect" of discussion of advanced topics.

Research topics are current areas of active research. Most presentation of research topics will take the form of seminar-style discussions of recent research papers, typically using the author's slides.

The principles and lessons from the advanced topics and research topics may be tested, but I do not expect you to master every detail.