We present algorithms for checking and enforcing robustness of concurrent programs against the Total Store Ordering (TSO) memory model. A program is robust if all its TSO computations correspond to computations under the Sequential Consistency (SC) semantics. We provide a complete characterization of non-robustness in terms of so-called attacks: a restricted form of (harmful) out-of-program-order executions. Then, we show that detecting attacks can be parallelized, and can be solved using state reachability queries under the SC semantics in a suitably instrumented program obtained by a linear size source-to-source translation. Importantly, the construction is valid for an unbounded number of memory addresses and an arbitrary number of paral...
The work covered in this thesis concerns automatic analysis of correctness of parallel programs runn...
Correctness of concurrent objects is defined in terms of conditions that determine allowable relatio...
Model checking is a well understood method for verifying correctness of concurrent programs. Commonl...
Abstract. We present algorithms for checking and enforcing robustness of concurrent programs against...
Robustness is a correctness notion for concurrent programs running under relaxed consistency models....
For performance reasons, modern multiprocessors implement relaxed memory consistency models that adm...
Knowing the extent to which we rely on technology one may think that correct programs are nowadays t...
We address the problem of verifying safety properties of concurrent programsrunning over the Total S...
Sequential Consistency (SC) is the memory model traditionally applied by programmers and verificatio...
For efficiency reasons, most modern processor architectures allow the reordering of CPU instructions...
We address the problem of verifying safety properties of concurrent programs running over the TSO me...
Abstract. When verifying a concurrent program, it is usual to assume that memory is sequentially con...
Model-checking tools classicaly verify concurrent programs under the traditional Sequential Consiste...
We propose an approach for reducing the TSO reachability analysis of concurrent programs to their SC...
In this paper, we study the problem of parameterized verification of a concurrent program running un...
The work covered in this thesis concerns automatic analysis of correctness of parallel programs runn...
Correctness of concurrent objects is defined in terms of conditions that determine allowable relatio...
Model checking is a well understood method for verifying correctness of concurrent programs. Commonl...
Abstract. We present algorithms for checking and enforcing robustness of concurrent programs against...
Robustness is a correctness notion for concurrent programs running under relaxed consistency models....
For performance reasons, modern multiprocessors implement relaxed memory consistency models that adm...
Knowing the extent to which we rely on technology one may think that correct programs are nowadays t...
We address the problem of verifying safety properties of concurrent programsrunning over the Total S...
Sequential Consistency (SC) is the memory model traditionally applied by programmers and verificatio...
For efficiency reasons, most modern processor architectures allow the reordering of CPU instructions...
We address the problem of verifying safety properties of concurrent programs running over the TSO me...
Abstract. When verifying a concurrent program, it is usual to assume that memory is sequentially con...
Model-checking tools classicaly verify concurrent programs under the traditional Sequential Consiste...
We propose an approach for reducing the TSO reachability analysis of concurrent programs to their SC...
In this paper, we study the problem of parameterized verification of a concurrent program running un...
The work covered in this thesis concerns automatic analysis of correctness of parallel programs runn...
Correctness of concurrent objects is defined in terms of conditions that determine allowable relatio...
Model checking is a well understood method for verifying correctness of concurrent programs. Commonl...