Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
The SPARC architecture manual (version 9)
The SPARC architecture manual (version 9)
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
Formal Methods in System Design - Special issue on symmetry in automatic verification
The serializability of concurrent database updates
Journal of the ACM (JACM)
Hiding Relaxed Memory Consistency with a Compiler
IEEE Transactions on Computers - Special issue on the parallel architecture and compilation techniques conference
Verifying Sequential Consistency on Shared-Memory Multiprocessor Systems
CAV '99 Proceedings of the 11th International Conference on Computer Aided Verification
Software transactional memory for dynamic-sized data structures
Proceedings of the twenty-second annual symposium on Principles of distributed computing
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
McRT-STM: a high performance software transactional memory system for a multi-core runtime
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Testing implementations of transactional memory
Proceedings of the 15th international conference on Parallel architectures and compilation techniques
CheckFence: checking consistency of concurrent data types on relaxed memory models
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs
IEEE Transactions on Computers
On the correctness of transactional memory
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
Model checking transactional memories
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Mechanical Verification of Transactional Memories with Non-transactional Memory Accesses
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Completeness and Nondeterminism in Model Checking Transactional Memories
CONCUR '08 Proceedings of the 19th international conference on Concurrency Theory
FORTE'06 Proceedings of the 26th IFIP WG 6.1 international conference on Formal Techniques for Networked and Distributed Systems
DISC'06 Proceedings of the 20th international conference on Distributed Computing
Towards Formally Specifying and Verifying Transactional Memory
Electronic Notes in Theoretical Computer Science (ENTCS)
Extensible transactional memory testbed
Journal of Parallel and Distributed Computing
Runtime verification for software transactional memories
RV'10 Proceedings of the First international conference on Runtime verification
Verification of STM on relaxed memory models
Formal Methods in System Design
Quantitative reactive modeling and verification
Computer Science - Research and Development
Hi-index | 0.00 |
Pseudo-code descriptions of STMs assume sequentially consistent program execution and atomicity of high-level STM operations like read, write, and commit. These assumptions are often violated in realistic settings, as STM implementations run on relaxed memory models, with the atomicity of operations as provided by the hardware. This paper presents the first approach to verify STMs under relaxed memory models with atomicity of 32 bit loads and stores, and read-modify-write operations. We present RML, a new high-level language for expressing concurrent algorithms with a hardware-level atomicity of instructions, and whose semantics is parametrized by various relaxed memory models. We then present our tool, FOIL, which takes as input the RML description of an STM algorithm and the description of a memory model, and automatically determines the locations of fences, which if inserted, ensure the correctness of the STM algorithm under the given memory model. We use FOIL to verify DSTM, TL2, and McRT STM under the memory models of sequential consistency, total store order, partial store order, and relaxed memory order.