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
Correspondence between ALGOL 60 and Church's Lambda-notation: part I
Communications of the ACM
TRAFFIC CONTROL IN A MULTIPLEXED COMPUTER
TRAFFIC CONTROL IN A MULTIPLEXED COMPUTER
Monitors and concurrent Pascal: a personal history
HOPL-II The second ACM SIGPLAN conference on History of programming languages
A multitasking executive for operating systems courses
ACM SIGOPS Operating Systems Review
An outline of a course on operating system principles
The origin of concurrent programming
Monitors and Concurrent Pascal: a personal history
History of programming languages---II
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.