Coarser Equivalences for Concurrent Program Runs

08/25/2022
by   Azadeh Farzan, et al.
0

Trace theory is a framework for designing equivalence relations for concurrent program runs based on a commutativity relation over the set of atomic steps taken by individual program threads. It is simple and elegant, and it yields efficient algorithms that are broadly useful in many different contexts. In this paper, we study relaxations of trace equivalence with the goal of maintaining its algorithmic advantages. We first prove that the largest appropriate relaxation of trace equivalence, an equivalence relation that preserves the order of steps taken by each thread and what write operation each read operation observes, does not yield efficient algorithms. Specifically, we prove a linear space lower bound for the problem of checking if two arbitrary steps of a concurrent program run are causally concurrent (i.e. they can be reordered in an equivalent run) or causally ordered. The same problem can be decided in constant space for trace equivalence. Second, we propose a new commutativity-based notion of equivalence that is strictly more relaxed than trace equivalence, and yet yields a constant space algorithm for the same problem. This notion of equivalence uses commutativity of certain blocks of atomic steps in addition to the standard commutativity from trace theory. We define a new partial order and prove that it faithfully represents the new equivalence classes. The definition of the partial order relies on a novel technical contribution: a new notion of atomicity, called liberal atomicity that is more relaxed than the well-known conflict-serializability. We demonstrate that liberal atomicity can be checked as efficiently as conflict-serializability, i.e. in constant space, and use this efficient monitor as part of our constant-space algorithm for deciding the status of causal concurrency of two steps in a concurrent program run.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/10/2019

Dynamic Verification with Observational Equivalence of C/C++ Concurrency

Program executions under relaxed memory model (rmm) semantics are signif...
research
02/27/2022

Parallel algorithm for pattern matching problems under substring consistent equivalence relations

Given a text and a pattern over an alphabet, the pattern matching proble...
research
08/19/2022

Awaiting for Godot: Stateless Model Checking that Avoids Executions where Nothing Happens

Stateless Model Checking (SMC) is a verification technique for concurren...
research
03/09/2019

Trace Equivalence and Epistemic Logic to Express Security Properties

In process algebras, security properties are expressed as equivalences b...
research
04/10/2018

POR for Security Protocol Equivalences: Beyond Action-Determinism

Formal methods have proved effective to automatically analyze protocols....
research
01/14/2020

Atomicity Checking in Linear Time using Vector Clocks

Multi-threaded programs are challenging to write. Developers often need ...
research
06/19/2023

Partial-order Checking with Unfolding for Linear Temporal Properties

Unfolding can tackle the path-explosion problem caused by concurrency. T...

Please sign up or login with your details

Forgot password? Click here to reset