Semantics of transactional memory and automatic mutual exclusion
Authors:
Open Access
- 25 January 2011
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 33 (1) , 1-50
Abstract
Software Transactional Memory (STM) is an attractive basis for the development of language features for concurrent programming. However, the semantics of these features can be delicate and problematic. In this article we explore the trade-offs semantic simplicity, the viability of efficient implementation strategies, and the flexibility of language constructs. Specifically, we develop semantics and type systems for the constructs of the Automatic Mutual Exclusion (AME) programming model; our results apply also to other constructs, such as atomic blocks. With this semantics as a point of reference, we study several implementation strategies. We model STM systems that use in-place update, optimistic concurrency, lazy conflict detection, and rollback. These strategies are correct only under nontrivial assumptions that we identify and analyze. One important source of errors is that some efficient implementations create dangerous “zombie” computations where a transaction keeps running after experiencing a conflict; the assumptions confine the effects of these computations.Keywords
This publication has 33 references indexed in Scilit:
- Implementation and Use of Transactional Memory with Dynamic Separation2009
- Ordering-Based Semantics for Software Transactional Memory2008
- Automatic Mutual Exclusion and Atomicity ChecksLecture Notes in Computer Science, 2008
- Completeness and Nondeterminism in Model Checking Transactional MemoriesLecture Notes in Computer Science, 2008
- A Model of Dynamic Separation for Transactional MemoryLecture Notes in Computer Science, 2008
- Types for safe lockingACM Transactions on Programming Languages and Systems, 2006
- A transactional object calculusScience of Computer Programming, 2005
- Featherweight JavaACM Transactions on Programming Languages and Systems, 2001
- A Syntactic Approach to Type SoundnessInformation and Computation, 1994
- Weak ordering—a new definitionACM SIGARCH Computer Architecture News, 1990