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
-
As will be discussed in our first meeting, class attendance is very important,
and your participation will form the primary contribution to your grade.
Resources
-
Discussion board: Piazza (CSE 291B students: please refer to Piazza for all course-related questions not addressed on this page)