Short-term scheduling in multiprogramming systems

  • Authors:
  • Per Brinch Hansen

  • Affiliations:
  • Carnegie-Mellon University, Pittsburgh, Pennsylvania

  • Venue:
  • ACM SIGOPS Operating Systems Review
  • Year:
  • 1972

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper defines a set of scheduling primitives which have evolved from multiprogramming systems described by Dijkstra, Lampson, Saltzer, and the present author. Compared to earlier papers on the same subject, the present one illustrates a more concise description of operating system principles by means of algorithms. This is achieved by (1) describing the primitives as the instructions of an abstract machine which in turn is defined by its instruction execution algorithm; (2) introducing a notation which distinguishes between the use of synchronizing variables (semaphores) to achieve mutual exclusion of critical sections, and to exchange signals between processes which have explicit input/output relationships; (3) considering the influence of critical sections on preemption and resumption; and (4) using a programming language, Pascal, which includes natural data types (records, classes, and pointers) for the representation of process descriptions and scheduling queues. The algorithms are written at a level of detail which clarifies the fundamental problems of process scheduling and suggests efficient methods of implementation.