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.
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- G. Bellella, editor. The Real-Time Specification for Java. Addison-Wesley, 2000.Google Scholar
Digital Library
- 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 Scholar
Digital Library
- C. Blundell, E. C. Lewis, and M. Martin. Subtleties of transactional memory atomicity semantics. Computer Architecture Letters, 5(2), 2006. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Cray Inc. Chapel specification 0.4. http://chapel.cs.washington.edu/specification.pdf.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- C. Flanagan and S. Qadeer. A type and effect system for atomicity. In ACM Conference on Programming Language Design and Implementation, 2003. Google Scholar
Digital Library
- D. Gay and A. Aiken. Language support for regions. In ACM Conference on Programming Language Design and Implementation, 2001. Google Scholar
Digital Library
- D. Grossman. Safe Programming at the C Level of Abstraction. PhD thesis, Cornell University, 2003. Google Scholar
Digital Library
- D. Grossman. Type-safe multithreading in Cyclone. In ACM Workshop on Types in Language Design and Implementation, 2003. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- N. Hallenberg, M. Elsman, and M. Tofte. Combining region inference and garbage collection. In ACM Conference on Programming Language Design and Implementation, 2002. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- T. Harris and K. Fraser. Language support for lightweight transactions. In ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2003. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- T. Harris, M. Plesko, A. Shinnar, and D. Tarditi. Optimizing memory transactions. In ACM Conference on Programming Language Design and Implementation, 2006. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- M. Herlihy and J. E. B. Moss. Transactional memory: architectural support for lock-free data structures. In International Symposium on Computer Architecture, 1993. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- B. Hindman and D. Grossman. Atomicity via source-to-source translation. In ACM SIGPLAN Workshop on Memory Systems Performance & Correctness, 2006. Google Scholar
Digital Library
- R. E. Jones. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, 1996. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- J. R. Larus and R. Rajwar. Transactional Memory. Morgan & Claypool Publishers, 2006.Google Scholar
- 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 Scholar
Digital Library
- V. J. Marathe, W. N. Scherer, and M. L. Scott. Adaptive software transactional memory. In International Symposium on Distributed Computing, 2005. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- R. Rajwar, M. Herlihy, and K. Lai. Virtualizing transactional memory. In 32nd International Symposium on Computer Architecture, 2005. Google Scholar
Digital Library
- J. H. Reppy. Concurrent Programming in ML. Cambridge University Press, 1999. Google Scholar
Digital Library
- M. F. Ringenburg and D. Grossman. AtomCaml: First-class atomicity via rollback. In 10th ACM International Conference on Functional Programming, 2005. Google Scholar
Digital Library
- N. Shavit and D. Touitou. Software transactional memory. Distributed Computing, Special Issue(10), 1997.Google Scholar
- 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 Scholar
Digital Library
- M. Tofte and J.-P. Talpin. Region-based memory management. Information and Computation, 132(2), 1997. Google Scholar
Digital Library
- P. R. Wilson. Uniprocessor garbage collection techniques. Technical report, University of Texas, 1994.Google Scholar
Digital Library
- K. Zee and M. Rinard. Write barrier removal by static analysis. In ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2002. Google Scholar
Digital Library
Index Terms
The transactional memory / garbage collection analogy
Recommendations
The transactional memory / garbage collection analogy
Proceedings of the 2007 OOPSLA conferenceThis 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 ...
Age-based garbage collection
Modern generational garbage collectors look for garbage among the young objects, because they have high mortality; however, these objects include the very youngest objects, which clearly are still live. We introduce new garbage collection algorithms, ...
Exploring garbage collection with haswell hardware transactional memory
ISMM '14Intel's latest processor microarchitecture, Haswell, adds support for a restricted form of transactional memory to the x86 programming model. We explore how this can be applied to three garbage collection scenarios in Jikes RVM: parallel copying, ...







Comments