CSE 291 (B00): Advanced Studies in Classical Operating Systems (Winter 2025)

Date and Time: Mondays and Wednesdays, 3:00-4:20, EBU3B 4258

Course Instructor: Prof. Joseph Pasquale

Synopsis

Current operating systems research is sometimes characterized as "polishing a round ball," meaning that as most of the great ideas in operating systems were developed a long time ago, all we are doing today is refining them. This is somewhat unfair, but there is a grain of truth, and looking back at the development of those great ideas is a worthy and illuminating pursuit. Toward this end, we will study some of the most influential operating systems, where most of the modern-day abstractions, mechanisms, and policies were first developed. These systems are especially interesting because of their focus on justifying the design and implementation decisions they made -- Why a particular overall structuring of the kernel? Why a certain notion of process, or synchronization mechanism, or scheduling policy? How do these decisions interact? -- which are mostly either lost or taken for granted today. It is instructive to see what predictions they made, whether they came true or not, and how their thinking process might inform us as to how we might go about making such predictions today, based on changing user interests, application demands, and technological trends. Some of the systems we will look at include the early classical ones: MIT's CTSS and/or Multics, Dijkstra's THE, Hansen's RC 4000, Bell Labs' UNIX, CMU's Hydra, etc. Grading will be based on class participation and a final paper.

Class Attendance

Resources