In concurrent programming, non-blocking synchronization is very efficient but difficult to design correctly. This paper presents a static analysis to show that code blocks are atomic, i.e., that every execution of the program is equivalent to one in which those code blocks execute without interruption by other threads. Our analysis determines commutativity of operations based primarily on how synchronization primitives (including locks, load-linked, store-conditional, and compare-and-swap) are used. A reduction theorem states that certain patterns of commutativity imply atomicity. Atomicity is itself an important correctness requirement for many concurrent programs. Furthermore, an atomic code block can be treated as a single transition dur...
Atomicity is an important correctness condition for concurrent systems. Informally, atomicity is the...
In this thesis, we address the problem of verifying the functional correctness of concurrent program...
Concurrency is a ubiquitous phenomenon in modern software ranging from distributed systems communica...
Most proof methods for reasoning about concurrent programs are based upon the interleaving semantics...
For the verification of concurrent programs, it is essential to be able to show that synchronisation...
For the verification of concurrent programs, it is essential to be able to show that synchronisation...
: Many coarse-grained, explicitly parallel programs execute in phases delimited by barriers to prese...
Writing correct shared-memory concurrent programs is hard. Not only must a programmer reason about ...
The atomic block, a synchronization primitive provided to programmers in transactional memory system...
Ensuring the correctness of multithreaded programs is difficult, due to the potential for unexpected...
Abstract. We look at approaches to specifying concurrent program modules based on disjointness (the ...
We present a new decision procedure for detecting property violations in pushdown models for concur...
Copyright is held by the owner/author(s). Despite much research on concurrent programming languages,...
An important class of concurrent objects are those that are non-blocking, that is, whose operations ...
AbstractEnsuring the correctness of multithreaded programs is difficult, due to the potential for un...
Atomicity is an important correctness condition for concurrent systems. Informally, atomicity is the...
In this thesis, we address the problem of verifying the functional correctness of concurrent program...
Concurrency is a ubiquitous phenomenon in modern software ranging from distributed systems communica...
Most proof methods for reasoning about concurrent programs are based upon the interleaving semantics...
For the verification of concurrent programs, it is essential to be able to show that synchronisation...
For the verification of concurrent programs, it is essential to be able to show that synchronisation...
: Many coarse-grained, explicitly parallel programs execute in phases delimited by barriers to prese...
Writing correct shared-memory concurrent programs is hard. Not only must a programmer reason about ...
The atomic block, a synchronization primitive provided to programmers in transactional memory system...
Ensuring the correctness of multithreaded programs is difficult, due to the potential for unexpected...
Abstract. We look at approaches to specifying concurrent program modules based on disjointness (the ...
We present a new decision procedure for detecting property violations in pushdown models for concur...
Copyright is held by the owner/author(s). Despite much research on concurrent programming languages,...
An important class of concurrent objects are those that are non-blocking, that is, whose operations ...
AbstractEnsuring the correctness of multithreaded programs is difficult, due to the potential for un...
Atomicity is an important correctness condition for concurrent systems. Informally, atomicity is the...
In this thesis, we address the problem of verifying the functional correctness of concurrent program...
Concurrency is a ubiquitous phenomenon in modern software ranging from distributed systems communica...