Principles of Operating Systems

Course Description

CSCV452 covers the principles and concepts that govern the design of modern computer operating systems. In general terms, the course covers the two primary functions of an operating system: insulating users and applications from details of the computer hardware, and managing the allocation of resources to improve efficiency. 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. CSCV452 meets the National Security Agency (NSA) Center of Academic Excellence in Cyber Operations (CAE-CO) academic requirements for Operating System Theory.

Learning Outcomes

The student will:

  • Explain the evolution and objectives of operating systems.
  • Explain the major functions of an operating system and describe issues relating to the design and implementation of operating systems.
  • Identify and explain the inter-relations among the various components that make up an operating system.
  • Identify and explain the inter-relationship between the operating system and the architecture of the computer.
  • Synthesize and evaluate operating system and system architecture implications, apply to problems and examples, evaluate alternatives.
  • Produce components of an operating system including kernel- and user- process creation and communication, I/O device drivers, interrupt handlers, and system call handlers.