skip to main content
10.1145/1297027.1297080acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

The transactional memory / garbage collection analogy

Published: 21 October 2007 Publication History

Abstract

This essay presents remarkable similarities between transactional memory and garbage collection. The connections are fascinating in their own right, and they let us better understand one technology by thinking about the corresponding issues for the other.

References

[1]
M. Abadi, C. Flanagan, and S. N. Freund. Types for safe locking: Static race detection for Java. ACM Transactions on Programming Languages and Systems, 28(2), 2006.
[2]
A.-R. Adl-Tabatabai, B. Lewis, V. Menon, B. R. Murphy, B. Saha, and T. Shpeisman. Compiler and runtime support for efficient software transactional memory. In ACM Conference on Programming Language Design and Implementation, 2006.
[3]
E. Allen, D. Chase, J. Hallet, V. Luchangco, J.-W. Maessen, S. Ryu, G. L. Steele Jr., and STobin-Hochstadt. The Fortress language specification, version 1.0β, Mar. 2007. http://research.sun.com/projects/plrg/fortress1.0beta.pdf.
[4]
C. S. Ananian, K. Asanovic, B. C. Kuszmaul, C. E. Leiserson, and S. Lie. Unbounded transactional memory. In 11th International Symposium on High--Performance Computer Architecture, 2005.
[5]
D. F. Bacon, P. Cheng, and V. T. Rajan. A unified theory of garbage collection. In ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2004.
[6]
G. Bellella, editor. The Real-Time Specification for Java. Addison-Wesley, 2000.
[7]
S. M. Blackburn, P. Cheng, and K. S. McKinley. Myths and realities: The performance impact of garbage collection. In SIGMETRICS-Proceedings of the International Conference on Measurements and Modeling of Computer Systems, 2004.
[8]
C. Blundell, E. C. Lewis, and M. Martin. Subtleties of transactional memory atomicity semantics. Computer Architecture Letters, 5(2), 2006.
[9]
B. D. Carlstrom, J. Chung, A. McDonald, H. Chafi, C. Kozyrakis, and K. Olukotun. The Atomos transactional programming language. In ACM Conference on Programming Language Design and Implementation, 2006.
[10]
P. Charles, C. Grothoff, V. Saraswat, C. Donawa, A. Kielstra, K. Ebcioglu, Cvon Praun, and V. Sarkar. X10: An Object-Oriented approach to non-uniform cluster computing. In ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2005.
[11]
Cray Inc. Chapel specification 0.4. http://chapel.cs.washington.edu/specification.pdf.
[12]
P. Damron, A. Fedorova, Y. Lev, V. Luchangco, M. Moir, and D. Nussbaum. Hybrid transactional memory. In International Conference on Architectural Support for Programming Languages and Operating Systems, 2006.
[13]
A. Diwan, D. Tarditi, and J. E. B. Moss. Memory system performance of programs with intensive heap allocation. ACM Transactions on Computer Systems, 13(3), 1995.
[14]
R. Ennals. Software transactional memory should not be lock free. Technical Report IRC-TR-06-052, Intel Research Cambridge, 2006. http://berkeley.intel-research.net/rennals/pubs/052RobEnnals.pdf.
[15]
C. Flanagan and S. Qadeer. A type and effect system for atomicity. In ACM Conference on Programming Language Design and Implementation, 2003.
[16]
D. Gay and A. Aiken. Language support for regions. In ACM Conference on Programming Language Design and Implementation, 2001.
[17]
D. Grossman. Safe Programming at the C Level of Abstraction. PhD thesis, Cornell University, 2003.
[18]
D. Grossman. Type-safe multithreading in Cyclone. In ACM Workshop on Types in Language Design and Implementation, 2003.
[19]
D. Grossman, J. Manson, and W. Pugh. What do high-level memory models mean for transactions? In ACM SIGPLAN Workshop on Memory Systems Performance & Correctness, 2006.
[20]
D. Grossman, G. Morrisett, T. Jim, M. Hicks, Y. Wang, and J. Cheney. Region-based memory management in Cyclone. In ACM Conference on Programming Language Design and Implementation, 2002.
[21]
N. Haines, D. Kindred, J. G. Morrisett, S. M. Nettles, and J. M. Wing. Composing first-class transactions. ACM Transactions on Programming Languages and Systems, 16(6), 1994.
[22]
N. Hallenberg, M. Elsman, and M. Tofte. Combining region inference and garbage collection. In ACM Conference on Programming Language Design and Implementation, 2002.
[23]
L. Hammond, B. D. Carlstrom, V. Wong, B. Hertzberg, M. Chen, C. Kozyrakis, and K. Olukotun. Programming with transactional coherence and consistency (TCC). In International Conference on Architectural Support for Programming Languages and Operating Systems, 2004.
[24]
T. Harris and K. Fraser. Language support for lightweight transactions. In ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2003.
[25]
T. Harris, S. Marlow, S. P. Jones, and M. Herlihy. Composable memory transactions. In ACM Symposium on Principles and Practice of Parallel Programming, 2005.
[26]
T. Harris, S. Marlow, and S. Peyton Jones. Haskell on a shared-memory multiprocessor. In Proceedings of the 2005 ACM SIGPLAN Workshop on Haskell, 2005.
[27]
T. Harris, M. Plesko, A. Shinnar, and D. Tarditi. Optimizing memory transactions. In ACM Conference on Programming Language Design and Implementation, 2006.
[28]
M. Herlihy, V. Luchangco, and M. Moir. A flexible framework for implementing software transactional memory. In ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2006.
[29]
M. Herlihy, V. Luchangco, M. Moir, and I. William N. Scherer. Software transactional memory for dynamic-sized data structures. In ACM Symposium on Principles of Distributed Computing, 2003.
[30]
M. Herlihy and J. E. B. Moss. Transactional memory: architectural support for lock-free data structures. In International Symposium on Computer Architecture, 1993.
[31]
M. Hertz and E. D. Berger. Quantifying the performance of garbage collection vs. explicit memory management. In ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2005.
[32]
B. Hindman and D. Grossman. Atomicity via source-to-source translation. In ACM SIGPLAN Workshop on Memory Systems Performance & Correctness, 2006.
[33]
R. E. Jones. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, 1996.
[34]
S. Kumar, M. Chu, C. J. Hughes, P. Kundu, and A. Nguyen. Hybrid transactional memory. In ACM Symposium on Principles and Practice of Parallel Programming, 2006.
[35]
J. R. Larus and R. Rajwar. Transactional Memory. Morgan & Claypool Publishers, 2006.
[36]
J. Manson, J. Baker, A. Cunei, S. Jagannathan, M. Prochazka, B. Xin, and J. Vitek. Preemptible atomic regions for real-time Java. In 26th IEEE Real-Time Systems Symposium, 2005.
[37]
V. J. Marathe, W. N. Scherer, and M. L. Scott. Adaptive software transactional memory. In International Symposium on Distributed Computing, 2005.
[38]
A. McDonald, J. Chung, B. D. Carlstrom, C. Cao Minh, H. Chafi, C. Kozyrakis, and K. Olukotun. Architectural semantics for practical transactional memory. In International Symposium on Computer Architecture, 2006.
[39]
M. M. Michael and M. L. Scott. Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In ACM Symposium on Principles of Distributed Computing, 1996.
[40]
K. E. Moore, J. Bobba, M. J. Moravan, M. D. Hill, and D. A. Wood. LogTM: Log-based transactional memory. In 12th International Symposium on High- Performance Computer Architecture, 2006.
[41]
M. J. Moravan, J. Bobba, K. E. Moore, L. Yen, M. D. Hill, B. Liblit, M. M. Swift, and D. A. Wood. Supporting nested transactional memory in LogTM. In 12th International Conference on Architectural Support for Programming Languages and Operating Systems, 2006.
[42]
R. Rajwar, M. Herlihy, and K. Lai. Virtualizing transactional memory. In 32nd International Symposium on Computer Architecture, 2005.
[43]
J. H. Reppy. Concurrent Programming in ML. Cambridge University Press, 1999.
[44]
M. F. Ringenburg and D. Grossman. AtomCaml: First-class atomicity via rollback. In 10th ACM International Conference on Functional Programming, 2005.
[45]
N. Shavit and D. Touitou. Software transactional memory. Distributed Computing, Special Issue(10), 1997.
[46]
T. Shpeisman, V. Menon, A.-R. Adl-Tabatabai, S. Balensiefer, D. Grossman, R. Hudson, K. Moore, and B. Saha. Enforcing isolation and ordering in STM. In ACM Conference on Programming Language Design and Implementation, 2007.
[47]
M. Tofte and J.-P. Talpin. Region-based memory management. Information and Computation, 132(2), 1997.
[48]
P. R. Wilson. Uniprocessor garbage collection techniques. Technical report, University of Texas, 1994.
[49]
K. Zee and M. Rinard. Write barrier removal by static analysis. In ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2002.

Cited By

View all
  • (2019)Statistical caching for near memory managementProceedings of the International Symposium on Memory Systems10.1145/3357526.3357557(411-416)Online publication date: 30-Sep-2019
  • (2017)Synchronized-by-Default Concurrency for Shared-Memory SystemsACM SIGPLAN Notices10.1145/3155284.301874752:8(299-312)Online publication date: 26-Jan-2017
  • (2017)Synchronized-by-Default Concurrency for Shared-Memory SystemsProceedings of the 22nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3018743.3018747(299-312)Online publication date: 26-Jan-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '07: Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applications
October 2007
728 pages
ISBN:9781595937865
DOI:10.1145/1297027
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 42, Issue 10
    Proceedings of the 2007 OOPSLA conference
    October 2007
    686 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1297105
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 October 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. garbage collection
  2. transactional memory

Qualifiers

  • Article

Conference

OOPSLA07
Sponsor:

Acceptance Rates

OOPSLA '07 Paper Acceptance Rate 33 of 156 submissions, 21%;
Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)13
  • Downloads (Last 6 weeks)1
Reflects downloads up to 03 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2019)Statistical caching for near memory managementProceedings of the International Symposium on Memory Systems10.1145/3357526.3357557(411-416)Online publication date: 30-Sep-2019
  • (2017)Synchronized-by-Default Concurrency for Shared-Memory SystemsACM SIGPLAN Notices10.1145/3155284.301874752:8(299-312)Online publication date: 26-Jan-2017
  • (2017)Synchronized-by-Default Concurrency for Shared-Memory SystemsProceedings of the 22nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3018743.3018747(299-312)Online publication date: 26-Jan-2017
  • (2017)Providing QoS in contention management for software transactional memory2017 13th International Computer Engineering Conference (ICENCO)10.1109/ICENCO.2017.8289793(231-236)Online publication date: Dec-2017
  • (2015)Leveraging synergy between database and programming language coursesJournal of Computing Sciences in Colleges10.5555/2831373.283137831:1(23-30)Online publication date: 1-Oct-2015
  • (2014)Analysis on Cloud Classification using AccessibilityInternational Journal of Cloud Applications and Computing10.4018/ijcac.20140701034:3(44-53)Online publication date: 1-Jul-2014
  • (2014)Software-as-a-Service using Heterogeneous Distributed System for User Specific ApplicationsInternational Journal of Cloud Applications and Computing10.4018/ijcac.20140101024:1(15-32)Online publication date: 1-Jan-2014
  • (2014)Programming with Managed TimeProceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software10.1145/2661136.2661145(1-10)Online publication date: 20-Oct-2014
  • (2014)A way forward in parallelising dynamic languagesProceedings of the 9th International Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems PLE10.1145/2633301.2633305(1-4)Online publication date: 28-Jul-2014
  • (2012)Efficiently combining parallel software using fine-grained, language-level, hierarchical resource management policiesACM SIGPLAN Notices10.1145/2398857.238466947:10(717-736)Online publication date: 19-Oct-2012
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media