Book contents
- Frontmatter
- Contents
- Preface
- 1 Introduction to Concurrency
- 2 Processes and the Specification of Concurrency
- 3 Communication between Processes
- 4 High-Level Concurrency Constructs - Shared Data
- 5 High-Level Concurrency Constructs - Message Passing
- 6 Languages for Concurrency
- 7 Implementation of a Concurrency Kernel
- Bibliography
- Index
1 - Introduction to Concurrency
Published online by Cambridge University Press: 05 June 2012
- Frontmatter
- Contents
- Preface
- 1 Introduction to Concurrency
- 2 Processes and the Specification of Concurrency
- 3 Communication between Processes
- 4 High-Level Concurrency Constructs - Shared Data
- 5 High-Level Concurrency Constructs - Message Passing
- 6 Languages for Concurrency
- 7 Implementation of a Concurrency Kernel
- Bibliography
- Index
Summary
Concurrency has been with us for a long time. The idea of different tasks being carried out at the same time, in order to achieve a particular end result more quickly, has been with us from time immemorial. Sometimes the tasks may be regarded as independent of one another. Two gardeners, one planting potatoes and the other cutting the lawn (provided the potatoes are not to be planted on the lawn!) will complete the two tasks in the time it takes to do just one of them. Sometimes the tasks are dependent upon each other, as in a team activity such as is found in a well-run hospital operating theatre. Here, each member of the team has to co-operate fully with the other members, but each member has his/her own well-defined task to carry out.
Concurrency has also been present in computers for almost as long as computers themselves have existed. Early on in the development of the electronic digital computer it was realised that there was an enormous discrepancy in the speeds of operation of electro-mechanical peripheral devices and the purely electronic central processing unit. The logical resolution of this discrepancy was to allow the peripheral device to operate independently of the central processor, making it feasible for the processor to make productive use of the time that the peripheral device is operating, rather than have to wait until a slow operation has been completed.
- Type
- Chapter
- Information
- Concurrent Programming , pp. 1 - 14Publisher: Cambridge University PressPrint publication year: 1992