The computer's operating system is the lowest-level software running on your computer. It coordinates the use of the computer's hardware resources, such as its CPU, memory and I/O devices. Beyond this, it provides security, protecting users from each other and providing a firewall to protect access through the network. In this course, we study a variety of techniques used in operating systems to perform these services, including CPU scheduling, memory management, concurrency, and file systems.
This course is programming intensive. Prereqisite: Computer Science 221.
Learning Outcomes: In this course students will learn:
Students will learn alternative strategies for the tasks that an operating system performs, such as alternative approaches to CPU scheduling and memory management. Exercises will involve evaluating the behavior of running systems, studying well-known algorithms, and implementing pieces of an operating system in C.