ScholarGate
Βοηθός

Concurrency Models and Process Calculi

Concurrency models and process calculi give formal accounts of how independent processes execute, communicate, and synchronize.

Εύρεση θέματος με το PaperMindΣύντομαFind papers & topics
Tools & resources
Λήψη διαφανειών
Learn & explore
ΒίντεοΣύντομα

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.

Methods for this concept

Related concepts