This course will study the fundamental concepts and principles of operating systems. Batch, spooling, and multiprogramming systems are introduced. The parts of an operating system are described in terms of their functions, structure and implementation. Basic policies for allocating resources are also discussed.