Concurrency Models and Process Calculi
Concurrency models and process calculi give formal accounts of how independent processes execute, communicate, and synchronize.
Definition
A process calculus is a formal algebra for describing concurrent systems as communicating processes, with operators for parallel composition, communication, and choice, and equivalences that determine when two processes behave the same.
Scope
This topic covers algebraic models of concurrent computation: Hoare's CSP and Milner's CCS, the pi-calculus for mobile processes whose communication topology changes, and the actor model of asynchronous message passing. It addresses communication and synchronization primitives, behavioral equivalences such as bisimulation, and the contrast between shared-memory and message-passing concurrency.
Core questions
- How can concurrent communicating processes be described algebraically?
- When are two concurrent processes behaviorally equivalent?
- How does message passing compare with shared-memory concurrency?
- How are dynamic communication structures modeled, as in the pi-calculus?
Key theories
- Communicating Sequential Processes (CSP)
- Hoare's CSP models concurrency through processes that synchronize on shared communication events, providing a foundation for message-passing languages and a theory of process refinement.
- CCS and bisimulation
- Milner's Calculus of Communicating Systems gives an algebra of processes with a precise notion of behavioral equivalence, bisimulation, for reasoning about when processes are interchangeable.
- The pi-calculus
- Milner, Parrow, and Walker extended process calculi to mobility, allowing communication channels themselves to be passed as messages so that the connection structure evolves dynamically.
Clinical relevance
Process calculi and the actor model underpin the design of concurrent and distributed languages and frameworks built on message passing, and they provide formal tools for specifying and verifying protocols. Bisimulation and refinement give precise criteria for correct concurrent behavior.
History
Concurrency theory matured in the late 1970s with Hoare's CSP and Milner's CCS, while Hewitt's actor model (1973) offered an asynchronous message-passing alternative. The pi-calculus in 1992 captured process mobility. These calculi influenced message-passing languages and concurrency libraries and remain foundations for protocol verification.
Debates
- Shared memory versus message passing
- A foundational design question is whether concurrency should be organized around shared mutable state with synchronization or around isolated processes exchanging messages, with process calculi and the actor model championing the latter.
Key figures
- C. A. R. Hoare
- Robin Milner
- Carl Hewitt
- Joachim Parrow
- David Walker
Related topics
Seminal works
- hoare1978
- milner1989
- milner1992
- hewitt1973
Frequently asked questions
- What is bisimulation?
- Bisimulation is an equivalence on processes that holds when each can match the other's observable steps indefinitely, formalizing the idea that two concurrent processes exhibit the same behavior.
- What does the pi-calculus add over earlier calculi?
- The pi-calculus models mobility by allowing communication channels to be sent as messages, so the topology of who can talk to whom can change during execution, capturing dynamic and reconfigurable systems.