Copyright (c) 2019, Peter J. Denning.
You may make one copy for personal use only.
All other uses require written permission of the author.
Operating systems fulfill two main functions: managing the resources of a computing system among the competing demands of the system's users, and providing a high-level environment for getting work done. Current operating systems must control events spanning 15 orders of magnitude: a trillionth of a second (the gate speeds of the chips) at the low end to days (on-going computations for humans) at the high end. With events at so many different time scales, operating systems rank among the most complex systems built by human hands.
To help us build operating systems that work as expected, we organize the components into levels of abstraction. The objects visible at a given level are composed of smaller objects defined at lower levels. Our levels chart gives a road map of the levels.
Since the first operating systems were built in the 1950s, designers have been seeking the best methods of implementing the different levels. They have created models of the operation of these levels and used the models as guides to implementation and performance evaluation. The best of these models are technology art forms because of their simplicity, elegance, and effectiveness. Although most real systems do not implement the models faithfully, their designers often refer to these models as ideals.
The purpose of The Art of Operating Systems is to
present the best models for each level of an operating system
and to help you see how they fit together into a working operating system.
This "Operating Systems Principles 101"
will help your understanding of operating systems.
|M0||Introduction. Purposes of OS. Organization by levels. Interpretation of levels as abstract machines.|
|M1||OS built as society of processes. Shell parses commands and creates virtual machines to execute them. A time-slicing mechanism multiplexes CPU among available virtual machines.|
|M2||Hardware-software interface. Interrupt architecture. Booting.|
|M3||Concurrency control. Threads and processes. Semaphores. Wait-Signal pseudocode.|
|M4||Memory management. Memory components. Virtual memory. Memory policies. Working set policies.|
|M5||Interprocess communication (IPC). Protected service processes. Shared page model. Internet model. RPC model.|
|M6||Internet Address space. Name mappings. Access controls. Capabilities.|
|M7||Information objects and directories. Stream objects. Directories.|
|M8||Virtual machines. Processes implemented as virtual machines.|
|M9||Shell (command interpreter). Construction of parser.|
|M10||Performance (advanced topic). Queueing models. Bottlenecks. Computational algorithms for queueing networks.|
|M11||Subprograms (advanced topic). Standard model for procedure activation. Contour model for procedure activation. Overview of machine structures.|
|M12||Security in Operating Systems (advanced topic)|
This book of slides supersedes an earlier version first prepared in 2000.