Tailoring Stateless Model Checking for Event-Driven Multi-Threaded Programs

07/29/2023
by   Parosh Aziz Abdulla, et al.
0

Event-driven multi-threaded programming is an important idiom for structuring concurrent computations. Stateless Model Checking (SMC) is an effective verification technique for multi-threaded programs, especially when coupled with Dynamic Partial Order Reduction (DPOR). Existing SMC techniques are often ineffective in handling event-driven programs, since they will typically explore all possible orderings of event processing, even when events do not conflict. We present Event-DPOR , a DPOR algorithm tailored to event-driven multi-threaded programs. It is based on Optimal-DPOR, an optimal DPOR algorithm for multi-threaded programs; we show how it can be extended for event-driven programs. We prove correctness of Event-DPOR for all programs, and optimality for a large subclass. One complication is that an operation in Event-DPOR, which checks for redundancy of new executions, is NP-hard, as we show in this paper; we address this by a sequence of inexpensive (but incomplete) tests which check for redundancy efficiently. Our implementation and experimental evaluation show that, in comparison with other tools in which handler threads are simulated using locks, Event-DPOR can be exponentially faster than other state-of-the-art DPOR algorithms on a variety of programs and manages to completely avoid unnecessary exploration of executions.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/09/2021

Stateful Dynamic Partial Order Reduction for Model Checking Event-Driven Applications that Do Not Terminate

Event-driven architectures are broadly used for systems that must respon...
research
06/19/2023

Partial-order Checking with Unfolding for Linear Temporal Properties

Unfolding can tackle the path-explosion problem caused by concurrency. T...
research
08/07/2020

Generating Distributed Programs from Event-B Models

Distributed algorithms offer challenges in checking that they meet their...
research
12/11/2022

McMini: A Programmable DPOR-based Model Checker for Multithreaded Programs

Model checking has become a key tool for gaining confidence in correctne...
research
05/24/2019

Verifying Asynchronous Event-Driven Programs Using Partial Abstract Transformers (Extended Manuscript)

We address the problem of analyzing asynchronous event-driven programs, ...
research
08/02/2018

Optimal Stateless Model Checking under the Release-Acquire Semantics

We present a framework for efficient application of stateless model chec...
research
05/13/2021

Stateless Model Checking under a Reads-Value-From Equivalence

Stateless model checking (SMC) is one of the standard approaches to the ...

Please sign up or login with your details

Forgot password? Click here to reset