The purpose of this course is to provide an overview of computer operating systems. Topics to be discussed include a brief history of OS’s and their design and development. The course will cover major components and the algorithms and implementation techniques used to create them. The class will presented using a both a mix of theory and hands-on exercises. Some/most of the programming assignments will be done on Linux machines.
A successful student will be able to understand the basic components of a computer operating system, and the interactions among the various components. The course will cover an introduction on the policies for scheduling, deadlocks, memory management, synchronization, system calls, and file systems.