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 paper we explore the tradeoffs between semantic simplicity, the viability of efficient implementation strategies, and the flexibilityof 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 roll-back. These strategies are correct only under non-trivial 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.
- Martin Abadi, Cormac Flanagan, and Stephen N. Freund. Types for safe locking: Static race detection for Java. ACM Trans. Program. Lang. Syst., 28(2): 207--255, 2006. Google Scholar
Digital Library
- Ali-Reza Adl-Tabatabai, Brian T. Lewis, Vijay Menon, Brian R. Murphy, Bratin Saha, and Tatiana Shpeisman. Compiler and runtime support for efficient software transactional memory. In PLDI '06: Proc. 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 26--37, 2006. Google Scholar
Digital Library
- Weak ordering - a new definition. SIGARCH Comput. Archit. News, 18(3a): 2--14, 1990. Google Scholar
Digital Library
- Atul Adya, Jon Howell, Marvin Theimer, William J. Bolosky, and John R. Douceur. Cooperative task management without manual stack management. In Proc. 2002 USENIX Annual Technical Conference (USENIX-02), pages 289--302, 2002. Google Scholar
Digital Library
- Eric Allen, David Chase, Joe Hallett, Victor Luchangco, Jan-Willem Maessen, Sukyoung Ryu, Guy LSteele Jr., and Sam Tobin-Hochstadt. The Fortress language specification, v1.0β. Technical report, 2007.Google Scholar
- Colin Blundell, E. Christopher Lewis, and Milo M. K. Martin. Deconstructing transactional semantics: The subtleties of atomicity. In Proc. 2005 Workshop on Duplicating, Deconstructing and Debunking, 2005.Google Scholar
- Brian D. Carlstrom, Austen McDonald, Hassan Chafi, JaeWoong Chung, Chi Cao Minh, Christos Kozyrakis, and Kunle Olukotun. The Atomos transactional programming language. In PLDI '06: Proc. 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 1--13, 2006. Google Scholar
Digital Library
- David Dice, Ori Shalev, and Nir Shavit. Transactional locking II. In Proc. of the 20th International Symposium on Distributed Computing (DISC 2006), pages 194--208, 2006. Google Scholar
Digital Library
- Dan Grossman, Jeremy Manson, and William Pugh. What do high-level memory models mean for transactions? In MSPC '06: Proc. 2006 Workshop on Memory System Performance and Correctness, pages 62--69, 2006. Google Scholar
Digital Library
- Tim Harris and Keir Fraser. Language support for lightweight transactions. In OOPSLA '03: Proc. 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 388--402, 2003. Google Scholar
Digital Library
- Tim Harris, Simon Marlow, Simon Peyton-Jones, and Maurice Herlihy. Composable memory transactions. In PPoPP '05: Proc. 10th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 48--60, 2005. Google Scholar
Digital Library
- Tim Harris, Mark Plesko, Avraham Shinnar, and David Tarditi. Optimizing memory transactions. In PLDI '06: Proc. 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 14--25, 2006. Google Scholar
Digital Library
- Atsushi Igarashi, Benjamin C. Pierce, and Philip Wadler. Featherweight Java: a minimal core calculus for Java and GJ. ACM Trans. Program. Lang. Syst., 23(3): 396--450, 2001. Google Scholar
Digital Library
- Michael Isard and Andrew Birrell. Automatic mutual exclusion. In Proc. 11th Workshop on Hot Topics in Operating Systems, 2007. Google Scholar
Digital Library
- Suresh Jagannathan, Jan Vitek, Adam Welc, and Antony Hosking. A transactional object calculus. Science of Computer Programming, 57(2):164--186, 2005. Google Scholar
Digital Library
- Bradley C. Kuszmaul and Charles E. Leiserson. Transactions everywhere. Technical report, 2003. http://hdl.handle.net/1721.1/3692.Google Scholar
- Ben Liblit. An operational semantics for LogTM. Technical Report 1571, U. Wisconsin-Madison, 2006. Version 1.0.Google Scholar
- Jeremy Manson, Jason Baker, Antonio Cunei, Suresh Jagannathan, Marek Prochazka, Bin Xin, and Jan Vitek. Preemptible atomic regions for real-time Java. In Proceedings of the 26th IEEE Real-Time Systems Symposium (RTSS), 2005. Google Scholar
Digital Library
- Jeremy Manson, William Pugh, and Sarita V. Adve. The Java memory model. In POPL '05: Proc. 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 378--391, 2005. Google Scholar
Digital Library
- Katherine F. Moore and Dan Grossman. High-level small-step operational semantics for transactions. To appear, POPL '08: Proc. 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 2008. Google Scholar
Digital Library
- Kevin E. Moore, Jayaram Bobba, Michelle J. Moravan, Mark D. Hill, and David A. Wood. LogTM: Log--based transactional memory. In Proc. 12th International Symposium on High-Performance Computer Architecture, pages 254--265. 2006.Google Scholar
Cross Ref
- Mayur Naik, Alex Aiken, and John Whaley. Effective static race detection for Java. In PLDI '06: Proc. 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 308--319, 2006. Google Scholar
Digital Library
- Bratin Saha, Ali-Reza Adl-Tabatabai, Richard L. Hudson, Chi Cao Minh, and Benjamin Hertzberg. McRT-STM: a high performance software transactional memory system for a multi-core runtime. In PPoPP '06: Proc. Eleventh ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 187--197, 2006. Google Scholar
Digital Library
- Michael L. Scott. Sequential specification of transactional memory semantics. In Proc. 1st ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing. 2006.Google Scholar
- Nir Shavit and Dan Touitou. Software transactional memory. In Proc. 14th Annual ACM Symposium on Principles of Distributed Computing, pages 204--213, 1995. Google Scholar
Digital Library
- Tatiana Shpeisman, Vijay Menon, Ali-Reza Adl-Tabatabai, Steven Balensiefer, Dan Grossman, Richard L. Hudson, Katherine F. Moore, and Bratin Saha. Enforcing isolation and ordering in STM. In PLDI '07: Proc. 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 78--88, 2007. Google Scholar
Digital Library
- Michael F. Spear, Virendra J. Marathe, Luke Dalessandro, and Michael L. Scott. Privatization techniques for software transactional memory. Technical Report #915, Computer Science Department, University of Rochester, 2007.Google Scholar
Digital Library
- Nicholas Sterling. Warlock: A static data race analysis tool. In Proc. USENIX Winter Technical Conference, 1993.Google Scholar
- Adam Welc, Suresh Jagannathan, and Antony Hosking. Safe futures for Java. In OOPSLA '05: Proc. 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 439--453, 2005. Google Scholar
Digital Library
Index Terms
Semantics of transactional memory and automatic mutual exclusion
Recommendations
Semantics of transactional memory and automatic mutual exclusion
POPL '08Software 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 paper we explore the tradeoffs between ...
Towards transactional memory semantics for C++
SPAA '09: Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architecturesTransactional memory (TM) eliminates many problems associated with lock-based synchronization. Over recent years, much progress has been made in software and hardware implementation techniques for TM. However, before transactional memory can be ...
Transactional memory with strong atomicity using off-the-shelf memory protection hardware
PPoPP '09: Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programmingThis paper introduces a new way to provide strong atomicity in an implementation of transactional memory. Strong atomicity lets us offer clear semantics to programs, even if they access the same locations inside and outside transactions. It also avoids ...







Comments