Perspectives on Transactional Memory

  • Martín Abadi
  • Tim Harris
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5710)

Abstract

We examine the role of transactional memory from two perspectives: that of a programming language with atomic actions and that of implementations of the language. We argue that it is difficult to formulate a clean, separate, and generally useful definition of transactional memory. In both programming-language semantics and implementations, the treatment of atomic actions benefits from being combined with that of other language features. In this respect (as in many others), transactional memory is analogous to garbage collection, which is often coupled with other parts of language runtime systems.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abadi, M., Birrell, A., Harris, T., Hsieh, J., Isard, M.: Dynamic separation for transactional memory. Technical Report MSR-TR-2008-43, Microsoft Research (March 2008)Google Scholar
  2. 2.
    Abadi, M., et al.: Implementation and use of transactional memory with dynamic separation. In: de Moor, O., Schwartzbach, M.I. (eds.) CC 2009. LNCS, vol. 5501, pp. 63–77. Springer, Heidelberg (2009)Google Scholar
  3. 3.
    Abadi, M., Birrell, A., Harris, T., Isard, M.: Semantics of transactional memory and automatic mutual exclusion. In: POPL 2008: Proc. 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 2008, pp. 63–74 (2008)Google Scholar
  4. 4.
    Abadi, M., Harris, T., Mehrara, M.: Transactional memory with strong atomicity using off-the-shelf memory protection hardware. In: PPoPP 2009: Proc. 14th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, February 2009, pp. 185–196 (2009)Google Scholar
  5. 5.
    Abadi, M., Harris, T., Moore, K.F.: A model of dynamic separation for transactional memory. In: van Breugel, F., Chechik, M. (eds.) CONCUR 2008. LNCS, vol. 5201, pp. 6–20. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  6. 6.
    Abadi, M., Plotkin, G.D.: A model of cooperative threads. In: POPL 2009: Proc. 36th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 2009, pp. 29–40 (2009)Google Scholar
  7. 7.
    Blundell, C., Lewis, E.C., Martin, M.M.K.: Deconstructing transactional semantics: The subtleties of atomicity. In: WDDD 2005: Proc. 4th Workshop on Duplicating, Deconstructing and Debunking, June 2005, pp. 48–55 (2005)Google Scholar
  8. 8.
    Bronson, N.G., Kozyrakis, C., Olukotun, K.: Feedback-directed barrier optimization in a strongly isolated STM. In: POPL 2009: Proc. 36th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 2009, pp. 213–225 (2009)Google Scholar
  9. 9.
    Cohen, A., O’Leary, J.W., Pnueli, A., Tuttle, M.R., Zuck, L.D.: Verifying correctness of transactional memories. In: FMCAD 2007: Proc. 7th International Conference on Formal Methods in Computer-Aided Design, November 2007, pp. 37–44 (2007)Google Scholar
  10. 10.
    Dalessandro, L., Scott, M.L.: Strong isolation is a weak idea. In: TRANSACT 2009: 4th ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (February 2009)Google Scholar
  11. 11.
    Detlefs, D., Nandivada, V.K.: Compile-time concurrent marking write barrier removal. Technical Report SMLI-TR-2004-142, Sun Microsystems (December 2004)Google Scholar
  12. 12.
    Dice, D., Shalev, O., Shavit, N.N.: Transactional locking II. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 194–208. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  13. 13.
    Dice, D., Shavit, N.: What really makes transactions faster? In: TRANSACT 2006, 1st ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (June 2006)Google Scholar
  14. 14.
    Grossman, D.: The transactional memory / garbage collection analogy. In: OOPSLA 2007: Proc. 22nd ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications, October 2007, pp. 695–706 (2007)Google Scholar
  15. 15.
    Grossman, D., Manson, J., Pugh, W.: What do high-level memory models mean for transactions? In: MSPC 2006: Proc. 2006 Workshop on Memory System Performance and Correctness, October 2006, pp. 62–69 (2006)Google Scholar
  16. 16.
    Guerraoui, R., Henzinger, T.A., Singh, V.: Completeness and nondeterminism in model checking transactional memories. In: van Breugel, F., Chechik, M. (eds.) CONCUR 2008. LNCS, vol. 5201, pp. 21–35. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  17. 17.
    Guerraoui, R., Henzinger, T.A., Singh, V.: Permissiveness in transactional memories. In: Taubenfeld, G. (ed.) DISC 2008. LNCS, vol. 5218, pp. 305–319. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  18. 18.
    Guerraoui, R., Henzinger, T., Singh, V.: Model checking transactional memories. In: PLDI 2008: Proc. 2008 ACM SIGPLAN Conference on Programming Language Design and Implementation, June 2008, pp. 372–382 (2008)Google Scholar
  19. 19.
    Guerraoui, R., Kapałka, M.: On the correctness of transactional memory. In: PPoPP 2008: Proc. 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, February 2008, pp. 175–184 (2008)Google Scholar
  20. 20.
    Harris, T., Marlow, S., Peyton Jones, S., Herlihy, M.: Composable memory transactions. In: PPoPP 2005: Proc. 10th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, June 2005, pp. 48–60 (2005)Google Scholar
  21. 21.
    Herlihy, M., Moss, J.E.B.: Transactional memory: Architectural support for lock-free data structures. In: ISCA 1993: Proc. 20th International Symposium on Computer Architecture, May 1993, pp. 289–301 (1993)Google Scholar
  22. 22.
    Jagannathan, S., Vitek, J., Welc, A., Hosking, A.: A transactional object calculus. Sci. Comput. Program. 57(2), 164–186 (2005)MathSciNetCrossRefMATHGoogle Scholar
  23. 23.
    Kermany, H., Petrank, E.: The compressor: concurrent, incremental, and parallel compaction. In: PLDI 2006: Proc. 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, June 2006, pp. 354–363 (2006)Google Scholar
  24. 24.
    Menon, V., Balensiefer, S., Shpeisman, T., Adl-Tabatabai, A.-R., Hudson, R., Saha, B., Welc, A.: Practical weak-atomicity semantics for Java STM. In: SPAA 2008: Proc. 20th Symposium on Parallelism in Algorithms and Architectures, June 2008, pp. 314–325 (2008)Google Scholar
  25. 25.
    Moore, K.F., Grossman, D.: High-level small-step operational semantics for transactions. In: POPL 2008: Proc. 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 2008, pp. 51–62 (2008)Google Scholar
  26. 26.
    Oancea, C.E., Mycroft, A., Harris, T.: A lightweight in-place implementation for software thread-level speculation. In: SPAA 2009: Proc. 21st ACM Symposium on Parallelism in Algorithms and Architectures (August 2009)Google Scholar
  27. 27.
    Saha, B., Adl-Tabatabai, A.-R., Jacobson, Q.: Architectural support for software transactional memory. In: MICRO 2006: Proc. 39th IEEE/ACM International Symposium on Microarchitecture, June 2006, pp. 185–196 (2006)Google Scholar
  28. 28.
    Schneider, F.T., Menon, V., Shpeisman, T., Adl-Tabatabai, A.-R.: Dynamic optimization for efficient strong atomicity. In: OOPSLA 2008: Proc. 23rd ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications, October 2008, pp. 181–194 (2008)Google Scholar
  29. 29.
    Scott, M.L.: Sequential specification of transactional memory semantics. In: TRANSACT 2006: 1st ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (June 2006)Google Scholar
  30. 30.
    Shriraman, A., Dwarkadas, S., Scott, M.L.: Flexible decoupled transactional memory support. In: ISCA 2008: Proc. 35th International Symposium on Computer Architecture, June 2008, pp. 139–150 (2008)Google Scholar
  31. 31.
    Spear, M.F., Marathe, V.J., Dalessandro, L., Scott, M.L.: Privatization techniques for software transactional memory. Technical Report 915, CS Dept, U. Rochester (February 2007)Google Scholar
  32. 32.
    Tasiran, S.: A compositional method for verifying software transactional memory implementations. Technical Report MSR-TR-2008-56, Microsoft Research (April 2008)Google Scholar
  33. 33.
    Vechev, M.T., Bacon, D.F.: Write barrier elision for concurrent garbage collectors. In: ISMM 2004: Proc. 4th International Symposium on Memory Management, October 2004, pp. 13–24 (2004)Google Scholar
  34. 34.
    Wang, C., Chen, W.-Y., Wu, Y., Saha, B., Adl-Tabatabai, A.-R.: Code generation and optimization for transactional memory constructs in an unmanaged language. In: CGO 2007, International Symposium on Code Generation and Optimization, March 2007, pp. 34–48 (2007)Google Scholar
  35. 35.
    Wegiel, M., Krintz, C.: The mapping collector: virtual memory support for generational, parallel, and concurrent compaction. In: ASPLOS 2008: Proc. 13th International Conference on Architectural Support for Programming Languages and Operating Systems, March 2008, pp. 91–102 (2008)Google Scholar
  36. 36.
    Winskel, G.: The Formal Semantics of Programming Languages. MIT Press, Cambridge (1993)MATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Martín Abadi
    • 1
    • 2
  • Tim Harris
    • 1
  1. 1.Microsoft ResearchUSA
  2. 2.University of CaliforniaSanta Cruz

Personalised recommendations