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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
- G. Bellella, editor. The Real-Time Specification for Java. Addison-Wesley, 2000.Google ScholarDigital 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 ScholarDigital Library
- C. Blundell, E. C. Lewis, and M. Martin. Subtleties of transactional memory atomicity semantics. Computer Architecture Letters, 5(2), 2006. Google ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
- D. Gay and A. Aiken. Language support for regions. In ACM Conference on Programming Language Design and Implementation, 2001. Google ScholarDigital Library
- D. Grossman. Safe Programming at the C Level of Abstraction. PhD thesis, Cornell University, 2003. Google ScholarDigital Library
- D. Grossman. Type-safe multithreading in Cyclone. In ACM Workshop on Types in Language Design and Implementation, 2003. Google ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
- T. Harris and K. Fraser. Language support for lightweight transactions. In ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2003. Google ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
- T. Harris, M. Plesko, A. Shinnar, and D. Tarditi. Optimizing memory transactions. In ACM Conference on Programming Language Design and Implementation, 2006. Google ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
- B. Hindman and D. Grossman. Atomicity via source-to-source translation. In ACM SIGPLAN Workshop on Memory Systems Performance & Correctness, 2006. Google ScholarDigital Library
- R. E. Jones. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, 1996. Google ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
- V. J. Marathe, W. N. Scherer, and M. L. Scott. Adaptive software transactional memory. In International Symposium on Distributed Computing, 2005. Google ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarCross 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 ScholarDigital Library
- R. Rajwar, M. Herlihy, and K. Lai. Virtualizing transactional memory. In 32nd International Symposium on Computer Architecture, 2005. Google ScholarDigital Library
- J. H. Reppy. Concurrent Programming in ML. Cambridge University Press, 1999. Google ScholarDigital Library
- M. F. Ringenburg and D. Grossman. AtomCaml: First-class atomicity via rollback. In 10th ACM International Conference on Functional Programming, 2005. Google ScholarDigital 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 ScholarDigital Library
- M. Tofte and J.-P. Talpin. Region-based memory management. Information and Computation, 132(2), 1997. Google ScholarDigital Library
- P. R. Wilson. Uniprocessor garbage collection techniques. Technical report, University of Texas, 1994.Google ScholarDigital 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 ScholarDigital 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