Table of Contents
Fetching ...

A Gentle Overview of Asynchronous Session-based Concurrency: Deadlock Freedom by Typing

Bas van den Heuvel, Jorge A. Pérez

TL;DR

The paper addresses deadlock freedom in asynchronous, session-based concurrency and presents a graduated framework: AP establishes a baseline asynchronous session calculus, ACP introduces a CP-like structure to guarantee deadlock freedom for tree-like topologies, and APCP adds priority-based typing to handle cyclic topologies. It then connects these foundations to LAST n by providing a translation from LAST n configurations to APCP-enabled AP processes, with operational soundness ensuring deadlock-freedom for closed programs when APCP typing holds. The work blends logic-based and priority-based approaches to yield a versatile verification toolkit for asynchronous session-typed systems, and it sketches implications for multiparty protocols and decentralized verification. Overall, the results offer a cohesive path from simple asynchronous sessions to deadlock-free cyclic networks, with practical impact for programming languages and distributed systems that rely on session-typed communication.

Abstract

While formal models of concurrency tend to focus on synchronous communication, asynchronous communication is relevant in practice. In this paper, we will discuss asynchronous communication in the context of session-based concurrency, the model of computation in which session types specify the structure of the two-party protocols implemented by the channels of a communicating process. We overview recent work on addressing the challenge of ensuring the deadlock-freedom property for message-passing processes that communicate asynchronously in cyclic process networks governed by session types. We offer a gradual presentation of three typed process frameworks and outline how they may be used to guarantee deadlock freedom for a concurrent functional language with sessions.

A Gentle Overview of Asynchronous Session-based Concurrency: Deadlock Freedom by Typing

TL;DR

The paper addresses deadlock freedom in asynchronous, session-based concurrency and presents a graduated framework: AP establishes a baseline asynchronous session calculus, ACP introduces a CP-like structure to guarantee deadlock freedom for tree-like topologies, and APCP adds priority-based typing to handle cyclic topologies. It then connects these foundations to LAST n by providing a translation from LAST n configurations to APCP-enabled AP processes, with operational soundness ensuring deadlock-freedom for closed programs when APCP typing holds. The work blends logic-based and priority-based approaches to yield a versatile verification toolkit for asynchronous session-typed systems, and it sketches implications for multiparty protocols and decentralized verification. Overall, the results offer a cohesive path from simple asynchronous sessions to deadlock-free cyclic networks, with practical impact for programming languages and distributed systems that rely on session-typed communication.

Abstract

While formal models of concurrency tend to focus on synchronous communication, asynchronous communication is relevant in practice. In this paper, we will discuss asynchronous communication in the context of session-based concurrency, the model of computation in which session types specify the structure of the two-party protocols implemented by the channels of a communicating process. We overview recent work on addressing the challenge of ensuring the deadlock-freedom property for message-passing processes that communicate asynchronously in cyclic process networks governed by session types. We offer a gradual presentation of three typed process frameworks and outline how they may be used to guarantee deadlock freedom for a concurrent functional language with sessions.

Paper Structure

This paper contains 14 sections, 9 theorems, 22 equations, 1 figure.

Key Result

theorem 1

Given $\textcolor{cType}{\mathsf{\mathit{P} \mathrel{\vdash} \Gamma}}$ and $\textcolor{cProc}{\mathit{Q}}$ such that $\textcolor{cProc}{\mathit{P}} \sc \textcolor{cProc}{\mathit{Q}}$ or $\textcolor{cProc}{\mathit{P}} \mathrel{\textcolor{cProc}{\mathit{\longrightarrow}}}\textcolor{cProc}{\mathit{Q}}$

Figures (1)

  • Figure :

Theorems & Definitions (21)

  • definition 1: Session Types for AP
  • definition 2: Duality
  • theorem 1: Type Preservation for AP
  • example 1
  • theorem 2: Type Preservation for ACP
  • example 2
  • theorem 3: Deadlock Freedom for ACP
  • definition 3: Session Types for APCP
  • definition 4: Priorities
  • theorem 4: Type Preservation for APCP
  • ...and 11 more