|CPS 110 / EE 153 Operating Systems
This course gives an introduction to systems concepts and operating systems. 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.
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.
The prerequisites for this course are CPS 100 and CPS 104 (or their equivalents). The intended audience is computer science undergraduates and graduate students needing a background in systems.
There is no required textbook. Several texts are available and may be worth the investment. One good new text is Principles of Computer Systems Design: an Introduction (PCSD) by Saltzer and Kaashoek. I will occasionally point out sections in this text, or in Modern Operating Systems by Tanenbaum. There is also lots of useful material in Bryant/O'Hallaron CS:APP. All of these texts are available from Amazon. However, exams cover only the material presented in lecture, the homework assignments, and the group projects.
Syllabus with project-related policies
More course policies
Chase's CPS 110 archive