This course explores the field of computer operating systems, emphasizing basic operating systems (OS) concepts and design principles. While stressing the fundamental principles behind them, we will discuss the performance and engineering trade-offs in the design and implementation of operating system mechanisms. The idea is to learn not only what operating systems are and how they work today, but also why they are designed the way they are and how they are likely to evolve in the future. This course will cover fundamental OS material such as scheduling and synchronization, multiprogramming, memory management, file system, protection, and security. Additionally, we will touch on a few advanced topics including micro-kernel OSes, virtual machines, and OS support for highly-concurrent online servers.
Class time: 2:00-3:15 p.m., Tuesdays and Thursdays.
Class location: CSB 601.