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
5 - High-Level Concurrency Constructs - Message Passing
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
All the high-level constructs discussed in the previous chapter have been of the “shared data” form. By this we mean that processes wishing to communicate with each other do so not by addressing one another directly, but by accessing data which is known and available to them all. The constructs also provide ways of accessing the shared data which ensure that the data itself is not compromised by undesirable simultaneous accesses by competing processes by offering operations in the form of procedures and functions to control the manipulation of the data. The data structure itself is purely passive, and changes are made to the structure by allowing procedures and functions to be called by the active elements in the system, namely the processes. As these procedures are called, they in a sense become part of the process which calls them, and the data itself temporarily becomes part of the address space of the calling process. We could also use the term “procedure oriented” to describe this view. We observe that the competing processes are not required to have any knowledge of the identities of their competitors, but merely to know the name of the object(s) they wish to access, and which operation(s) they wish to apply to the data.
By contrast, we shall now discuss a different class of techniques for allowing concurrent processes to communicate with each other.
- Type
- Chapter
- Information
- Concurrent Programming , pp. 113 - 138Publisher: Cambridge University PressPrint publication year: 1992