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 concurrency, CPU scheduling, memory management, file systems and security.
This course is programming intensive and assumes you have substantial experience using Java. 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.