Table of Contents
Fetching ...

Reachability and Safety Games under TSO Semantics

Stephan Spengler

TL;DR

This work considers games played on the transition graph of concurrent programs running under the Total Store Order (TSO) weak memory model, and shows that the reachability and safety problem of this game reduce to the analysis of single-process (non-concurrent) programs.

Abstract

We consider games played on the transition graph of concurrent programs running under the Total Store Order (TSO) weak memory model. Games are frequently used to model the interaction between a system and its environment, in this case between the concurrent processes and the nondeterministic TSO buffer updates. In our formulation, the game is played by two players, who alternatingly make a move: The process player can execute any enabled instruction of the processes, while the update player takes care of updating the messages in the buffers that are between each process and the shared memory. We show that the reachability and safety problem of this game reduce to the analysis of single-process (non-concurrent) programs. In particular, they exhibit only finite-state behaviour. Because of this, we introduce different notions of fairness, which force the two players to behave in a more realistic way. Both the reachability and safety problem then become undecidable.

Reachability and Safety Games under TSO Semantics

TL;DR

This work considers games played on the transition graph of concurrent programs running under the Total Store Order (TSO) weak memory model, and shows that the reachability and safety problem of this game reduce to the analysis of single-process (non-concurrent) programs.

Abstract

We consider games played on the transition graph of concurrent programs running under the Total Store Order (TSO) weak memory model. Games are frequently used to model the interaction between a system and its environment, in this case between the concurrent processes and the nondeterministic TSO buffer updates. In our formulation, the game is played by two players, who alternatingly make a move: The process player can execute any enabled instruction of the processes, while the update player takes care of updating the messages in the buffers that are between each process and the shared memory. We show that the reachability and safety problem of this game reduce to the analysis of single-process (non-concurrent) programs. In particular, they exhibit only finite-state behaviour. Because of this, we introduce different notions of fairness, which force the two players to behave in a more realistic way. Both the reachability and safety problem then become undecidable.

Paper Structure

This paper contains 23 sections, 8 theorems, 3 equations, 6 figures.

Key Result

Lemma 1

In reachability and safety games, every configuration is winning for exactly one player. A player with a winning strategy also has a positional winning strategy.

Figures (6)

  • Figure 1: TSO semantics
  • Figure 2: The configurations of \ref{['lem:views']}.
  • Figure 3: $\mathsf{Proc}^1$ of the reduction from PCS.
  • Figure 4: $\mathsf{Proc}^2$ of the reduction from PCS.
  • Figure 5: $\mathsf{Proc}^1$ of the reduction from PCS to a TSO game with process fairness.
  • ...and 1 more figures

Theorems & Definitions (14)

  • Lemma 1: Proposition 2.21 in DBLP:conf/dagstuhl/Mazala01
  • Lemma 2
  • proof : Proof idea.
  • Claim 1
  • proof : Proof idea.
  • Theorem 1
  • proof
  • Lemma 3
  • proof
  • Lemma 4
  • ...and 4 more