Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Fast randomized consensus using shared memory
Journal of Algorithms
The existence of refinement mappings
Theoretical Computer Science
Atomic snapshots of shared memory
Journal of the ACM (JACM)
Model-checking of correctness conditions for concurrent objects
Information and Computation - Special issue: LICS 1996—Part 1
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Distributed computing: fundamentals, simulations and advanced topics
Distributed computing: fundamentals, simulations and advanced topics
Distributed Algorithms
Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers
Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers
How to Construct an Atomic Variable (Extended Abstract)
Proceedings of the 3rd International Workshop on Distributed Algorithms
A type and effect system for atomicity
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Atomizer: a dynamic atomicity checker for multithreaded programs
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Distributed Computing
Static analysis of atomicity for programs with non-blocking synchronization
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
NCA '06 Proceedings of the Fifth IEEE International Symposium on Network Computing and Applications
A criterion for atomicity revisited
Acta Informatica
Model checking transactional memories
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Checking a multithreaded algorithm with +CAL
DISC'06 Proceedings of the 20th international conference on Distributed Computing
Proving atomicity: an assertional approach
DISC'05 Proceedings of the 19th international conference on Distributed Computing
Hi-index | 0.00 |
This paper presents SOAR: the first oblivious atomicity assertion with polynomial complexity. SOAR enables to check atomicity of a single-writer multi-reader register implementation. The basic idea underlying the low overhead induced by SOAR lies in greedily checking, in a backward manner, specific points of an execution where register operations could be linearized, rather than exploring all possible precedence relations among these.We illustrate the use of SOAR by implementing it in +CAL. The performance of the resulting automatic verification outperforms comparable approaches by more than an order of magnitude already in executions with only 6 read/write operations. This difference increases to 3-4 orders of magnitude in the "negative" scenario, i.e., when checking some non-atomic execution, with only 5 operations. For example, checking atomicity of every possible execution of a single-writer single-reader (SWSR) register with at most 2 write and 3 read operations with the state of the art oblivious assertion takes more than 58 hours to complete, whereas SOAR takes just 9 seconds.