|CPS 310: Operating Systems (also ECE 353) Fall 2020|
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 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. Various programming systems ranging from cloud services to Web frameworks to programmable networks to browsers meet our definition of a "programmable platform". The last part of the course covers principles and topics that are important for understanding modern networked software systems.
The prerequisites for this course are introductory programming and basic computer architecture (e.g., CPS 250). The intended audience is computer science undergraduates and graduate students needing a background in systems. Welcome to the Machine [PDF] is a quick-and-dense overview of relevant computer architecture: if it mostly makes sense to you, then you'll be OK. You should take time to review any unfamiliar topics or terms discussed in that document.
More course policies