Semantics of transactional memory and automatic mutual exclusion
Authors:
Open Access
- 7 January 2008
- conference paper
- Published by Association for Computing Machinery (ACM)
- Vol. 43 (1) , 63-74
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 prob- lematic. In this paper we explore the tradeoffs between semantic simplicity, the viability of efficient implementation strategies, and the flexibility of language constructs. Specifically, we develop se- mantics and type systems for the constructs of the Automatic Mu- tual 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 con- currency, lazy conflict detection, and roll-back. These strategies are correct only under non-trivial assumptions that we identify and an- alyze. One important source of errors is that some efficient imple- mentations create dangerous "zombie" computations where a trans- action keeps running after experiencing a conflict; the assumptions confine the effects of these computations.Keywords
This publication has 20 references indexed in Scilit:
- High-level small-step operational semantics for transactions2008
- Enforcing isolation and ordering in STM2007
- McRT-STM2006
- Types for safe lockingACM Transactions on Programming Languages and Systems, 2006
- Transactional Locking II2006
- Safe futures for Java2005
- A transactional object calculusScience of Computer Programming, 2005
- Language support for lightweight transactions2003
- Featherweight JavaACM Transactions on Programming Languages and Systems, 2001
- Weak ordering—a new definitionACM SIGARCH Computer Architecture News, 1990