Title :
Verifying multi-threaded software with impact
Author :
Wachter, Bjorn ; Kroening, Daniel ; Ouaknine, Joel
Author_Institution :
Dept. of Comput. Sci., Univ. of Oxford, Oxford, UK
Abstract :
Lazy abstraction with interpolants, also known as the Impact algorithm, is en vogue as a state-of-the-art software model-checking technique for sequential programs. However, a direct extension of the Impact algorithm to concurrent programs is bound to be inefficient as it has to explore all thread interleavings, which leads to control-state explosion. To this end, we present a new algorithm that combines a new, symbolic form of partial-order reduction with Impact. Our algorithm carries out the dependence analysis on-the-fly while constructing the abstraction and is thus able to deal precisely with dynamic dependencies arising from accesses to tables or pointers - a setting where classical static partial-order reduction techniques struggle. We have implemented the algorithm in a prototype tool that analyses concurrent C program with POSIX threads and evaluated it on a number of benchmark programs. To our knowledge, this is the first application of an Impact-like algorithm to concurrent programs.
Keywords :
interpolation; multi-threading; multiprocessing programs; program diagnostics; program verification; POSIX threads; benchmark programs; concurrent C program analysis; control-state explosion; dependence analysis; impact algorithm; lazy abstraction; multithreaded software verification; power-efficient multicore architectures; sequential programs; software model-checking technique; static partial-order reduction techniques; thread interleavings; Abstracts; Concurrent computing; Force; Labeling; Software; Software algorithms; Subspace constraints;
Conference_Titel :
Formal Methods in Computer-Aided Design (FMCAD), 2013
Conference_Location :
Portland, OR
DOI :
10.1109/FMCAD.2013.6679412