This course studies the principles and concepts that govern the design of modern computer operating systems. Specific topics covered include the process model of computation and the related areas of mutual exclusion and process synchronization, including the use of semaphores, message passing, and monitors.
Process deadlock detection and prevention are also discussed.
With respect to resource management, areas covered include processor scheduling, memory management, and management of secondary storage devices, such as magnetic disks. Memory management topics consist of swapping, virtual addressing, paging, segmentation, and sharing. Secondary storage management topics include file system organization, access methods, and performance optimizations. Implementation techniques are discussed for each of these topics, as well as protection and security concerns. Finally, the course will cover alternative operating system architectures, and the implications of future trends in computing on operating system design.