Vaziri et al. propose a data-centric approach to synchronization. The key underlying concept of their work is the atomic set, which specifies the existence of an invariant that holds on a set of fields of an object type. In addition, they formalize a set of eleven data-access scenarios that completely specify the set of non-serializable interleaving patterns that can lead to an atomic-set serializability violation of the expressed invariant. We present an algorithm that uses state-space exploration techniques to statically detect atomic-set serializability violations. The key idea is that the data-access scenarios can be used as a property specification for a software model checker. We tested our technique on programs with know...
We describe a novel use of abstract interpretation in which the abstract domain informs a runtime sy...
AbstractMost of the models used to describe the behaviours of concurrent programs and to prove some ...
Concurrency is an indispensable programming paradigm and multi-threaded programs form the bedrock of...
Previously we presented atomic sets, memory locations that share some consistency property, and unit...
Concurrency bugs are notoriously difficult to detect because there can be vast combinations of inter...
Writing correct shared-memory concurrent programs is hard. Not only must a programmer reason about ...
We present a new decision procedure for detecting property violations in pushdown models for concur...
Atomicity is an important correctness condition for concurrent systems. Informally, atomicity is the...
Abstract. Concurrent programs that are free of unsynchronized ac-cesses to shared data may still exh...
Distributed programs are particularly vulnerable to software faults. Bugs in these programs are usua...
Concurrency bugs are among the most difficult to test and diagnose of all software bugs. The multico...
Atomicity violations are among the most severe and prevalent defects in concurrent software. Numerou...
A particularly insidious type of concurrency bug is atomicity violations. While there has been subst...
Concurrency-related bugs may happen when multiple threads access shared data and interleave in ways ...
In concurrent programming, non-blocking synchronization is very efficient but difficult to design co...
We describe a novel use of abstract interpretation in which the abstract domain informs a runtime sy...
AbstractMost of the models used to describe the behaviours of concurrent programs and to prove some ...
Concurrency is an indispensable programming paradigm and multi-threaded programs form the bedrock of...
Previously we presented atomic sets, memory locations that share some consistency property, and unit...
Concurrency bugs are notoriously difficult to detect because there can be vast combinations of inter...
Writing correct shared-memory concurrent programs is hard. Not only must a programmer reason about ...
We present a new decision procedure for detecting property violations in pushdown models for concur...
Atomicity is an important correctness condition for concurrent systems. Informally, atomicity is the...
Abstract. Concurrent programs that are free of unsynchronized ac-cesses to shared data may still exh...
Distributed programs are particularly vulnerable to software faults. Bugs in these programs are usua...
Concurrency bugs are among the most difficult to test and diagnose of all software bugs. The multico...
Atomicity violations are among the most severe and prevalent defects in concurrent software. Numerou...
A particularly insidious type of concurrency bug is atomicity violations. While there has been subst...
Concurrency-related bugs may happen when multiple threads access shared data and interleave in ways ...
In concurrent programming, non-blocking synchronization is very efficient but difficult to design co...
We describe a novel use of abstract interpretation in which the abstract domain informs a runtime sy...
AbstractMost of the models used to describe the behaviours of concurrent programs and to prove some ...
Concurrency is an indispensable programming paradigm and multi-threaded programs form the bedrock of...