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
2 - Processes and the Specification of 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
In the previous chapter we introduced the notion of a sequential process (agreeing that where no confusion would arise, the term process would be sufficient) in an informal way. Now we need to formalise this concept, and to provide some concrete examples of the representation of a process which will enable us to clarify the basic ideas behind systems of concurrent processes. We begin, however, by considering some of the issues concerning the nature of concurrent activity, and describing some of the notations which have been proposed whereby concurrency may be introduced into a program.
Specification of Concurrent Activity
There are a variety of ways of talking about concurrency, some of which have found their way into programming languages in various guises, and some of which are merely notational mechanisms for describing parallel activity.
When discussing the ways in which parallel activity can be specified within a programming language or system, it is useful to consider two orthogonal features of any proposed method. The first is the specification of where in a program a separate process may be started, and where, if at all, it terminates. The specification of where a new process may begin and end provides some synchronisation points within the concurrent program. We assume that it is possible to specify that two processes may execute in parallel, and it is at that point that the two processes are assumed to be synchronised.
- Type
- Chapter
- Information
- Concurrent Programming , pp. 15 - 41Publisher: Cambridge University PressPrint publication year: 1992