ACM Home Page
Please provide us with feedback. Feedback
What do high-level memory models mean for transactions?
Full text PdfPdf (183 KB)
Source Memory System Performance archive
Proceedings of the 2006 workshop on Memory system performance and correctness table of contents
San Jose, California
SESSION: Transactional memory table of contents
Pages: 62 - 69  
Year of Publication: 2006
ISBN:1-59593-578-9
Authors
Dan Grossman  University of Washington
Jeremy Manson  Purdue University
William Pugh  University of Maryland, College Park
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 11,   Downloads (12 Months): 112,   Citation Count: 16
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

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

ABSTRACT

Many people have proposed adding transactions, or atomic blocks, to type-safe high-level programming languages. However, researchers have not considered the semantics of transactions with respect to a memory model weaker than sequential consistency. The details of such semantics are more subtle than many people realize, and the interaction between compiler transformations and transactions could produce behaviors that many people find surprising. A language's memory model, which determines these interactions, must clearly indicate which behaviors are legal, and which are not. These design decisions affect both the idioms that are useful for designing concurrent software and the compiler transformations that are legal within the language.Cases where semantics are more subtle than people expect include the actual meaning of both strong and weak atomicity; correct idioms for thread safe lazy initialization; compiler transformations of transactions that touch only thread local memory; and whether there is a well-defined notion for transactions that corresponds to the notion of correct and incorrect use of synchronization in Java. Open questions for a high-level memory-model that includes transactions involve both issues of isolation and ordering.


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
{ACL+a} Eric Allen, David Chase, Victor Luchangco, Jan-Willem Maessen, Sukyoung Ryu, Guy L. Steele Jr., and Sam Tobin-Hochstadt. The Fortress language specification, version 0.903. http://research.sun.com/projects/plrg/fortress0903.pdf.
 
2
{ACL+b} Eric Allen, David Chase, Victor Luchangco, Jan-Willem Maessen, Sukyoung Ryu, Guy L. Steele Jr., and Sam Tobin-Hochstadt. The Fortress language specification, version 1.0α. http://research.sun.com/projects/plrg/fortress.pdf.
 
3
4
 
5
6
7
 
8
{BBC+} David Bacon Joshua Bloch, Jeff Bogda, Cliff Click, Paul Haahr, Doug Lea, Tom May, Jan-Willem Maessen, John D. Mitchell Kelvin Nilsen, Bill Pugh, and Emin Gun Sirer. The double-checked locking is broken declaration. http://www.cs.umd.edu/pugh/java/memoryModel/DoubleCheckedLocki
 
9
{BLM05} Colin Blundell, E. Christopher Lewis, and Milo M. K. Martin. Deconstructing Transactional Semantics: The Subtleties of Atomicity. In Proceedings of the 2005 Workshop on Duplicating, Deconstructing and Debunking, 2005.
10
11
12
13
14
15
16
 
17
18
19
20
 
21
{LB98} Bil Lewis and Daniel J. Berg. Multithreaded programming with pthreads. 1998.
 
22
{Lea04} Doug Lea. JSR-133 Cookbook, 2004. Available from http://gee.cs.oswego.edu/dl/jmm/cookbook.html.
23
24
25
 
26
{Sco06} Michael L. Scott. Sequential specification of transactional memory semantics. In First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (TRANSACT), June 2006.
 
27
{SH96} Douglas Schmidt and Tim Harrison. Double-Checked Locking: An Optimization Pattern for Efficiently Initializing and Accessing Thread-safe Objects. In Third Annual Pattern Languages of Program Design Conference, 1996.
 
28
{Str97} Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley Longman, Reading Mass. USA, 3rd edition, 1997.
 
29
{VJWH04} Jan Vitek, Suresh Jagannathan, Adam Welc, and Antony L. Hosking. A semantic framework for designer transactions. In 13th European Symposium on Programming, volume 2986 of Lecture Notes in Computer Science, pages 249--263, 2004.
 
30
{WJH05} Adam Welc, Suresh Jagannathan, and Antony L. Hosking. Revocation Techniques for Java Concurrency. Concurrency and Computation: Practice and Experience, 2005.
31

CITED BY  16

Collaborative Colleagues:
Dan Grossman: colleagues
Jeremy Manson: colleagues
William Pugh: colleagues