The nucleus of a multiprogramming system
Communications of the ACM
The structure of the “THE”-multiprogramming system
Communications of the ACM
A scheduling philosophy for multiprocessing systems
Communications of the ACM
On multiprogramming, machine coding, and computer organization
Communications of the ACM
A correspondence between ALGOL 60 and Church's Lambda-notations: Part II
Communications of the ACM
TRAFFIC CONTROL IN A MULTIPLEXED COMPUTER
TRAFFIC CONTROL IN A MULTIPLEXED COMPUTER
Hi-index | 0.00 |
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.