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

The transactional memory / garbage collection analogy

Published:21 October 2007Publication 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. G. Bellella, editor. The Real-Time Specification for Java. Addison-Wesley, 2000.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. C. Blundell, E. C. Lewis, and M. Martin. Subtleties of transactional memory atomicity semantics. Computer Architecture Letters, 5(2), 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Cray Inc. Chapel specification 0.4. http://chapel.cs.washington.edu/specification.pdf.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  15. C. Flanagan and S. Qadeer. A type and effect system for atomicity. In ACM Conference on Programming Language Design and Implementation, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. D. Gay and A. Aiken. Language support for regions. In ACM Conference on Programming Language Design and Implementation, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. D. Grossman. Safe Programming at the C Level of Abstraction. PhD thesis, Cornell University, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. D. Grossman. Type-safe multithreading in Cyclone. In ACM Workshop on Types in Language Design and Implementation, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. N. Hallenberg, M. Elsman, and M. Tofte. Combining region inference and garbage collection. In ACM Conference on Programming Language Design and Implementation, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. T. Harris and K. Fraser. Language support for lightweight transactions. In ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. T. Harris, M. Plesko, A. Shinnar, and D. Tarditi. Optimizing memory transactions. In ACM Conference on Programming Language Design and Implementation, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. M. Herlihy and J. E. B. Moss. Transactional memory: architectural support for lock-free data structures. In International Symposium on Computer Architecture, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. B. Hindman and D. Grossman. Atomicity via source-to-source translation. In ACM SIGPLAN Workshop on Memory Systems Performance & Correctness, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. R. E. Jones. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. J. R. Larus and R. Rajwar. Transactional Memory. Morgan & Claypool Publishers, 2006.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. V. J. Marathe, W. N. Scherer, and M. L. Scott. Adaptive software transactional memory. In International Symposium on Distributed Computing, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarCross RefCross Ref
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. R. Rajwar, M. Herlihy, and K. Lai. Virtualizing transactional memory. In 32nd International Symposium on Computer Architecture, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. J. H. Reppy. Concurrent Programming in ML. Cambridge University Press, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. M. F. Ringenburg and D. Grossman. AtomCaml: First-class atomicity via rollback. In 10th ACM International Conference on Functional Programming, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. N. Shavit and D. Touitou. Software transactional memory. Distributed Computing, Special Issue(10), 1997.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. M. Tofte and J.-P. Talpin. Region-based memory management. Information and Computation, 132(2), 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. P. R. Wilson. Uniprocessor garbage collection techniques. Technical report, University of Texas, 1994.Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. K. Zee and M. Rinard. Write barrier removal by static analysis. In ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. The transactional memory / garbage collection analogy

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • 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

          Copyright © 2007 ACM

          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]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 21 October 2007

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Acceptance Rates

          OOPSLA '07 Paper Acceptance Rate33of156submissions,21%Overall Acceptance Rate268of1,244submissions,22%

          Upcoming Conference

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader