Model checkers frequently fail to completely verify a concurrent program, even if partial-order reduction is applied. The verication engineer is left in doubt whether the program is safe and the eort towards verifying the program is wasted. We present a technique that uses the results of such incomplete verication attempts to construct a (fair) scheduler that allows the safe execution of the partially veried 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 performance p...
Developing correct, scalable and efficient concurrent programs is a complex and difficult task, due ...
Concurrent programs are notoriously difficult to write correctly, as scheduling nondeterminism can i...
Abstract. Concurrent programs are difficult to verify because the proof must consider the interactio...
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...
Previous approaches to systematic state-space exploration for test-ing multi-threaded programs have ...
Abstract. In many practical application domains, the software is organized into a set of threads, wh...
Stateless model checking is a technique for testing and verifying concurrent programs, based on expl...
Stateless Model Checking (SMC) is a verification technique for concurrent programs that checks for s...
The most prominent advantage of software verification over testing is a rigorous check of every poss...
Lazy sequentialization has emerged as one of the most promising approaches for concurrent program an...
Abstract. The choice of where a thread scheduling algorithm preempts one thread in order to execute ...
Model checking is a well understood method for verifying correctness of concurrent programs. Commonl...
With the spread of multi-core systems, the need to write concurrent programs in order to take advant...
concurrent programs often exhibit wrong behaviors due to unintended interferences among the concurre...
Developing correct, scalable and efficient concurrent programs is a complex and difficult task, due ...
Concurrent programs are notoriously difficult to write correctly, as scheduling nondeterminism can i...
Abstract. Concurrent programs are difficult to verify because the proof must consider the interactio...
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...
Previous approaches to systematic state-space exploration for test-ing multi-threaded programs have ...
Abstract. In many practical application domains, the software is organized into a set of threads, wh...
Stateless model checking is a technique for testing and verifying concurrent programs, based on expl...
Stateless Model Checking (SMC) is a verification technique for concurrent programs that checks for s...
The most prominent advantage of software verification over testing is a rigorous check of every poss...
Lazy sequentialization has emerged as one of the most promising approaches for concurrent program an...
Abstract. The choice of where a thread scheduling algorithm preempts one thread in order to execute ...
Model checking is a well understood method for verifying correctness of concurrent programs. Commonl...
With the spread of multi-core systems, the need to write concurrent programs in order to take advant...
concurrent programs often exhibit wrong behaviors due to unintended interferences among the concurre...
Developing correct, scalable and efficient concurrent programs is a complex and difficult task, due ...
Concurrent programs are notoriously difficult to write correctly, as scheduling nondeterminism can i...
Abstract. Concurrent programs are difficult to verify because the proof must consider the interactio...