This course will focus on fundamental principles of operating systems. We will explore the various roles of the operating system which include managing and multiplexing available hardware resources, providing higher-level abstractions for applications to use in interacting with the hardware platform, and enforcing isolation and protection for software programs. We will cover topics such as: concurrency, file systems, synchronization, virtualization, inter-process communication, and scheduling. Additionally, we will explore how these concepts relate to modern systems beyond the operating system itself (e.g., distributed systems). The topics discussed in this course are similar to CPS 310; however, this course includes more advanced topics and projects, and incorporates readings and discussions of relevant papers (both recent and classical).
For more information, please see the course syllabus.