Subtleties of transactional memory atomicity semantics
Top Cited Papers
- 1 February 2006
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Computer Architecture Letters
- Vol. 5 (2) , 17
- https://doi.org/10.1109/l-ca.2006.18
Abstract
Transactional memory has great potential for simplifying multithreaded programming by allowing programmers to specify regions of the program that must appear to execute atomically. Transactional memory implementations then optimistically execute these transactions concurrently to obtain high performance. This work shows that the same atomic guarantees that give transactions their power also have unexpected and potentially serious negative effects on programs that were written assuming narrower scopes of atomicity. We make four contributions: (1) we show that a direct translation of lock-based critical sections into transactions can introduce deadlock into otherwise correct programs, (2) we introduce the terms strong atomicity and weak atomicity to describe the interaction of transactional and non-transactional code, (3) we show that code that is correct under weak atomicity can deadlock under strong atomicity, and (4) we demonstrate that sequentially composing transactional code can also introduce deadlocks. These observations invalidate the intuition that transactions are strictly safer than lock-based critical sections, that strong atomicity is strictly safer than weak atomicity, and that transactions are always composableKeywords
This publication has 10 references indexed in Scilit:
- What do high-level memory models mean for transactions?Published by Association for Computing Machinery (ACM) ,2006
- LogTM: Log-based Transactional MemoryPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2006
- Transactional Memory: Architectural Support For Lock-free Data StructuresPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- Virtualizing Transactional MemoryPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- Unbounded Transactional MemoryPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- Transactional memory coherence and consistencyPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2004
- Language support for lightweight transactionsPublished by Association for Computing Machinery (ACM) ,2003
- Transactional lock-free execution of lock-based programsPublished by Association for Computing Machinery (ACM) ,2002
- Shared memory consistency models: a tutorialComputer, 1996
- Software transactional memoryPublished by Association for Computing Machinery (ACM) ,1995