Concurrent Programming Concepts

Per Brinch Hansen · ACM Computing Surveys · 1973

This paper describes the evolution of language features for multiprogramming from event queues and semaphores to critical regions and monitors. It suggests that the choice of language concepts should be guided by two simple principles: First, ~t should be possible to understand a concurrent program in time-independent terms by an effort proportional to its size; secondly, it should be possible to state assumptions about invarmnt relationships among program components and have these assumptmns checked automatically. The central problems of multiprogramming are illustrated by annotated algorithms written in a weU-structured programming language. Key words and phrases: structured multiprogramming, programming languages, operating systems, programming errors, resource protection, compile-time checking, correctness proofs, sequential and concurrent processes, synchronising events, semaphores, shared data, mutual exclusion, critical regions, monitors. CR categories: 4.22, 4.31, 4.32, 5.24 Somewhere there are decisions made that are not rational in any sense, that are subject to nothing more than the personal bias of the decision maker. Logical methods, at best, re-arrange the way in which personal bias is to be introduced into a problem Of course, this "at best " is rather important. Present intuitive methods unhappily introduce personal bias in such a way that it makes problems impossible to solve correctly. Our purpose must be to re-pattern the bias, so that it no longer interferes in th]s destructive way with the process of design, and no longer inhibits clarity of form

Read the paper · More papers on PaperTik