Model checkers frequently fail to completely verify a concurrent program, even if partial-order reduction is applied. The verification engineer is left in doubt whether the program is safe and the effort toward verifying the program is wasted. We present a technique that uses the results of such incomplete verification attempts to construct a (fair) scheduler that allows the safe execution of the partially verified concurrent program. This scheduler restricts the execution to schedules that have been proven safe (and prevents executions that were found to be erroneous). We evaluate the performance of our technique and show how it can be improved using partial-order reduction. While constraining the scheduler results in a considerable perfor...
We describe a new sequentialization-based approach to the symbolic verification of multi-threaded pr...
Abstract. In many practical application domains, the software is organized into a set of threads, wh...
Abstract. The design of concurrent algorithms tends to be a long and difficult process. Increasing t...
Model checkers frequently fail to completely verify a concurrent program, even if partial-order redu...
Automated software verification can prove the correctness of a program with respect to a given speci...
Stateless Model Checking (SMC) is a verification technique for concurrent programs that checks for s...
The design of concurrent algorithms tends to be a long and difficult process. Increasing the number ...
The most prominent advantage of software verification over testing is a rigorous check of every poss...
Stateless model checking is a technique for testing and verifying concurrent programs, based on expl...
Lazy sequentialization has emerged as one of the most promising approaches for concurrent program an...
Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact ...
The verification of concurrent programs remains an open challenge, as thread interaction has to be a...
The transition from single-core to multi-core processors has made multi-threaded software an importa...
Concurrency libraries can facilitate the development of multithreaded programs by providing concurre...
AbstractThe outcome of verifying software is often a 'counterexample', i.e., a listing of the action...
We describe a new sequentialization-based approach to the symbolic verification of multi-threaded pr...
Abstract. In many practical application domains, the software is organized into a set of threads, wh...
Abstract. The design of concurrent algorithms tends to be a long and difficult process. Increasing t...
Model checkers frequently fail to completely verify a concurrent program, even if partial-order redu...
Automated software verification can prove the correctness of a program with respect to a given speci...
Stateless Model Checking (SMC) is a verification technique for concurrent programs that checks for s...
The design of concurrent algorithms tends to be a long and difficult process. Increasing the number ...
The most prominent advantage of software verification over testing is a rigorous check of every poss...
Stateless model checking is a technique for testing and verifying concurrent programs, based on expl...
Lazy sequentialization has emerged as one of the most promising approaches for concurrent program an...
Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact ...
The verification of concurrent programs remains an open challenge, as thread interaction has to be a...
The transition from single-core to multi-core processors has made multi-threaded software an importa...
Concurrency libraries can facilitate the development of multithreaded programs by providing concurre...
AbstractThe outcome of verifying software is often a 'counterexample', i.e., a listing of the action...
We describe a new sequentialization-based approach to the symbolic verification of multi-threaded pr...
Abstract. In many practical application domains, the software is organized into a set of threads, wh...
Abstract. The design of concurrent algorithms tends to be a long and difficult process. Increasing t...