ACM Home Page
Please provide us with feedback. Feedback
The semantics of progress in lock-based transactional memory
Full text PdfPdf (257 KB)
Source
Annual Symposium on Principles of Programming Languages archive
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages table of contents
Savannah, GA, USA
SESSION: Multicore table of contents
Pages 404-415  
Year of Publication: 2009
ISBN:978-1-60558-379-2
Also published in ...
Authors
Rachid Guerraoui  EPFL, Lausanne, Switzerland
Michal Kapalka  EPFL, Lausanne, Switzerland
Sponsors
ACM: Association for Computing Machinery
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 20,   Downloads (12 Months): 169,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1480881.1480931
What is a DOI?

ABSTRACT

Transactional memory (TM) is a promising paradigm for concurrent programming. Whereas the number of TM implementations is growing, however, little research has been conducted to precisely define TM semantics, especially their progress guarantees. This paper is the first to formally define the progress semantics of lockbased TMs, which are considered the most effective in practice.

We use our semantics to reduce the problems of reasoning about the correctness and computability power of lock-based TMs to those of simple try-lock objects. More specifically, we prove that checking the progress of any set of transactions accessing an arbitrarily large set of shared variables can be reduced to verifying a simple property of each individual (logical) try-lock used by those transactions. We use this theorem to determine the correctness of state-of-the-art lock-based TMs and highlight various configuration ambiguities. We also prove that lock-based TMs have consensus number 2. This means that, on the one hand, a lock-based TM cannot be implemented using only read-write memory, but, on the other hand, it does not need very powerful instructions such as the commonly used compare-and-swap.

We finally use our semantics to formally capture an inherent trade-off in the performance of lock-based TM implementations. Namely, we show that the space complexity of every lock-based software TM implementation that uses invisible reads is at least exponential in the number of objects accessible to transactions.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
2
 
3
 
4
Dave Dice, Ori Shalev, and Nir Shavit. Transactional locking II. In Proceedings of the 20th International Symposium on Distributed Computing (DISC), 2006.
 
5
Robert Ennals. Software transactional memory should not be obstruction-free. Technical Report IRC-TR-06-052, Intel Research Cambridge Tech Report, Jan 2006.
6
7
8
 
9
Rachid Guerraoui and Michał Kapałka. The semantics of progress in lock-based transactional memory. Technical Report LPD-REPORT-2008-015, EPFL, October 2008.
10
11
12
13
14
15
16
 
17
18
19
 
20
Leslie Lamport. On interprocess communication-part II: Algorithms. Distributed Computing, 1 (2), 1986.
 
21
Virendra J. Marathe, Michael F. Spear, Christopher Heriot, Athul Acharya, David Eisenstat, William N. Scherer III, and Michael L. Scott. Lowering the overhead of software transactional memory. In 1st ACM SIGPLAN Workshop on Transactional Computing (TRANSACT), Jun 2006.
22
23
24
 
25
 
26
Michael L. Scott. Sequential specification of transactional memory semantics. In 1st ACM SIGPLAN Workshop on Transactional Computing (TRANSACT), 2006.
27
 
28
Jan Vitek, Suresh Jagannathan, Adam Welc, and Antony Hosking. A semantic framework for designer transactions. In Proceedings of the European Symposium on Programming (ESOP), March 2004.


Collaborative Colleagues:
Rachid Guerraoui: colleagues
Michal Kapalka: colleagues