The Art of Operating Systems


Peter J. Denning


An On-Line Book of Slides


Copyright (c) 2000-2007, 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 functions: managing the resources of a computing system among the competing demands of the system's users, and providing a high-level environment for programming and program execution. Current operating systems control components operating on time scales of one event every trillionth of a second (the gate speeds of the chips) all the way up to the time scale of one event every few days (on-going computations). Those 15 orders of magnitude rank operating systems 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 many components at 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 whole. This will help your understanding of operating systems.

LECTURE SLIDES:

  • OS Basic Architecture.
  • Procedures.
  • Processes and Threads.
  • Time Sharing.
  • Synchronization.
  • Mutual Exclusion.
  • Monitors.
  • Deadlocks.
  • Shell.
  • Virtual Machines.
  • Handles and Directories.
  • Info Objects.
  • Access Control.
  • Storage.
  • Memory Policy.
  • Remote Procedure Call.
  • Queueing.
  • Security.