The theory of database concurrency control
The theory of database concurrency control
Concurrency control and recovery in database systems
Concurrency control and recovery in database systems
A technique of state space search based on unfolding
Formal Methods in System Design - Special issue on computer-aided verification (based on CAV'92 workshop)
Coloured Petri nets (2nd ed.): basic concepts, analysis methods and practical use: volume 1
Coloured Petri nets (2nd ed.): basic concepts, analysis methods and practical use: volume 1
Model-checking of correctness conditions for concurrent objects
Information and Computation - Special issue: LICS 1996—Part 1
The notions of consistency and predicate locks in a database system
Communications of the ACM
Reduction: a method of proving properties of parallel programs
Communications of the ACM
The Book of Traces
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
An Improvement of McMillan's Unfolding Algorithm
TACAs '96 Proceedings of the Second International Workshop on Tools and Algorithms for Construction and Analysis of Systems
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
On serializability of iterated transactions
PODC '82 Proceedings of the first ACM SIGACT-SIGOPS symposium on Principles of distributed computing
Atomizer: a dynamic atomicity checker for multithreaded programs
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Database Systems Concepts
KISS: keep it simple and sequential
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Static analysis of atomicity for programs with non-blocking synchronization
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Exploiting Purity for Atomicity
IEEE Transactions on Software Engineering
Verifying concurrent message-passing c programs with recursive calls
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
jPredictor: a predictive runtime analysis tool for java
Proceedings of the 30th international conference on Software engineering
Velodrome: a sound and complete dynamic atomicity checker for multithreaded programs
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Monitoring Atomicity in Concurrent Programs
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Randomized active atomicity violation detection in concurrent programs
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
The Complexity of Predicting Atomicity Violations
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
SingleTrack: A Dynamic Determinism Checker for Multithreaded Programs
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Meta-analysis for Atomicity Violations under Nested Locking
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
SideTrack: generalizing dynamic atomicity analysis
Proceedings of the 7th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
Causal dataflow analysis for concurrent programs
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
RV'07 Proceedings of the 7th international conference on Runtime verification
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Cooperative reasoning for preemptive execution
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
CONTESSA: concurrency testing augmented with symbolic analysis
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
A characterization of combined traces using labeled stratified order structures
PETRI NETS'10 Proceedings of the 31st international conference on Applications and Theory of Petri Nets
Trace-Based symbolic analysis for atomicity violations
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
BEST: A symbolic testing tool for predicting multi-threaded program failures
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Scalable and precise symbolic analysis for atomicity violations
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Axis: automatically fixing atomicity violations through solving control constraints
Proceedings of the 34th International Conference on Software Engineering
Predicting concurrency failures in the generalized execution traces of x86 executables
RV'11 Proceedings of the Second international conference on Runtime verification
Using unfoldings in automated testing of multithreaded programs
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Predicting serializability violations: SMT-Based search vs. DPOR-Based search
HVC'11 Proceedings of the 7th international Haifa Verification conference on Hardware and Software: verification and testing
Scaling predictive analysis of concurrent programs by removing trace redundancy
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
Atomicity is an important generic specification that assures that a programmer can pretend blocks occur sequentially in any execution. We define a notion of atomicity based on causality. We model the control flow of a program with threads using a Petri net that naturally abstracts data, and faithfully captures the independence and interaction between threads. The causality between events in the partially ordered executions of the Petri net is used to define the notion of causal atomicity. We show that causal atomicity is a robust notion that many correct programs adopt, and show how we can effectively check causal atomicity using Petri net tools based on unfoldings, which exploit the concurrency in the net to yield automatic partial-order reduction in the state-space.