Context-Bounded Verification of Liveness Properties for Multithreaded Shared-Memory Programs

11/09/2020
by   Pascal Baumann, et al.
0

We study context-bounded verification of liveness properties of multi-threaded, shared-memory programs, where each thread can spawn additional threads. Our main result shows that context-bounded fair termination is decidable for the model; context-bounded implies that each spawned thread can be context switched a fixed constant number of times. Our proof is technical, since fair termination requires reasoning about the composition of unboundedly many threads each with unboundedly large stacks. In fact, techniques for related problems, which depend crucially on replacing the pushdown threads with finite-state threads, are not applicable. Instead, we introduce an extension of vector addition systems with states (VASS), called VASS with balloons (VASSB), as an intermediate model; it is an infinite-state model of independent interest. A VASSB allows tokens that are themselves markings (balloons). We show that context bounded fair termination reduces to fair termination for VASSB. We show the latter problem is decidable by showing a series of reductions: from fair termination to configuration reachability for VASSB and thence to the reachability problem for VASS. For a lower bound, fair termination is known to be non-elementary already in the special case where threads run to completion (no context switches). We also show that the simpler problem of context-bounded termination is 2EXPSPACE-complete, matching the complexity bound—and indeed the techniques—for safety verification. Additionally, we show the related problem of fair starvation, which checks if some thread can be starved along a fair run, is also decidable in the context-bounded case. The decidability employs an intricate reduction from fair starvation to fair termination. Like fair termination, this problem is also non-elementary.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/21/2021

General Decidability Results for Asynchronous Shared-Memory Programs: Higher-Order and Beyond

The model of asynchronous programming arises in many contexts, from low-...
research
11/17/2021

Context-Bounded Verification of Thread Pools

Thread pooling is a common programming idiom in which a fixed set of wor...
research
07/08/2022

An Infinitary Proof Theory of Linear Logic Ensuring Fair Termination in the Linear π-Calculus

Fair termination is the property of programs that may diverge "in princi...
research
12/02/2020

Making Weak Memory Models Fair

We observe that the standard notion of thread fairness is insufficient f...
research
03/26/2018

Bounded Context Switching for Valence Systems

We study valence systems, finite-control programs over infinite-state me...
research
10/22/2020

Ghost Signals: Verifying Termination of Busy-Waiting

Programs for multiprocessor machines commonly perform busy-waiting for s...
research
05/18/2022

Fair Termination of Multiparty Sessions

There exists a broad family of multiparty sessions in which the progress...

Please sign up or login with your details

Forgot password? Click here to reset