10.1145/1065944.1065952acmconferencesArticle/Chapter ViewAccess DenialPublication PagesppoppConference Proceedingsconference-collections
Article

Composable memory transactions

Published:15 June 2005Publication History

ABSTRACT

Writing concurrent programs is notoriously difficult, and is of increasing practical importance. A particular source of concern is that even correctly-implemented concurrency abstractions cannot be composed together to form larger abstractions. In this paper we present a new concurrency model, based on transactional memory, that offers far richer composition. All the usual benefits of transactional memory are present (e.g. freedom from deadlock), but in addition we describe new modular forms of blocking and choice that have been inaccessible in earlier work.

Get full access to this Publication

Purchase, subscribe or recommend this publication to your librarian.

References

  1. Benton, N., Cardelli, L., and Fournet, C. Modern concurrency abstractions for C#. In Proceedings of European Conference on Object-Oriented Programming (June 2002), vol. 2374 of Lecture Notes in Computer Science, pp. 415--425. Google ScholarGoogle Scholar
  2. Clarke, D. G., Potter, J. M., and Noble, J. Ownership types for flexible alias protection. In OOPSLA '98: Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (1998), pp. 48--64. Google ScholarGoogle Scholar
  3. Daume III, H. Yet Another Haskell Tutorial. 2004. Available at http://www.isi.edu/~hdaume/htut/ or via http://www.haskell.org/.Google ScholarGoogle Scholar
  4. Ennals, R. Feris: a functional environment for retargetable interactive systems. Batchelors thesis, University of Cambridge Computer Laboratory, 2000.Google ScholarGoogle Scholar
  5. Flatt, M., and Findler, R. B. Kill-safe synchronization abstractions. In PLDI '04: Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation (2004), pp. 47--58. Google ScholarGoogle Scholar
  6. Fraser, K. Practical lock-freedom. PhD thesis, University of Cambridge Computer Laboratory, Feb. 2004. Also published as UCAM-CL-TR-579.Google ScholarGoogle Scholar
  7. Gray, J., and Reuter, A. Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers Inc., 1992. Google ScholarGoogle Scholar
  8. Hammond, L., Carlstrom, B. D., Wong, V., Hertzberg, B., Chen, M., Kozyrakis, C., and Olukotun, K. Programming with transactional coherence and consistency (TCC). In Proceedings of the 11th international conference on Architectural support for programming languages and operating systems (2004), pp. 1--13. Google ScholarGoogle Scholar
  9. Harris, T., and Fraser, K. Language support for lightweight transactions. In Proc ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications (OOPSLA) (2003), pp. 388--402. Google ScholarGoogle Scholar
  10. Herlihy, M., Luchangco, V., Moir, M., and Scherer, III, W. N. Software transactional memory for dynamic-sized data structures. In Proceedings of the twenty-second annual symposium on Principles of distributed computing (2003), pp. 92--101. Google ScholarGoogle Scholar
  11. Herlihy, M., and Moss, J. E. B. Transactional memory: architectural support for lock-free data structures. In Proceedings of the 20th annual international symposium on Computer architecture (1993), pp. 289--300. Google ScholarGoogle Scholar
  12. Israeli, A., and Rappoport, L. Disjoint-access-parallel implementations of strong shared memory primitives. In Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing (1994), pp. 151--160. Google ScholarGoogle Scholar
  13. Jordan, M., and Atkinson, M. Orthogonal persistence for Java --- a mid-term report. In Proceedings of the 3rd International Workshop on Persistence and Java (Sept. 1998), pp. 335--352. Google ScholarGoogle Scholar
  14. Kelsey, R., Rees, J., and Sperber, M. The incomplete scheme 48 reference manual for release 1.1. July 2004.Google ScholarGoogle Scholar
  15. Lamb, C., Landis, G., Orenstein, J., and Weinreb, D. The ObjectStore database system. Commun. ACM 34, 10 (1991), 50--63. Google ScholarGoogle Scholar
  16. Liskov, B. Distributed programming in Argus. Commun. ACM 31, 3 (1988), 300--312. Google ScholarGoogle Scholar
  17. Marlow, S., Peyton-Jones, S., Moran, A., and Reppy, J. Asynchronous exceptions in Haskell. In ACM Conference on Programming Languages Design and Implementation (PLDI'01), ACM, pp. 274--285. Google ScholarGoogle Scholar
  18. Martinez, J. F., and Torrellas, J. Speculative synchronization: applying thread-level speculation to explicitly parallel applications. In Proceedings of the 10th international conference on architectural support for programming languages and operating systems (ASPLOS-X) (2002), pp. 18--29. Google ScholarGoogle Scholar
  19. Moss, E. B. Nested transactions: An approach to reliable distributed computing. Tech. rep., Massachusetts Institute of Technology, 1981. Google ScholarGoogle Scholar
  20. Oplinger, J., and Lam, M. S. Enhancing software reliability with speculative threads. In Proceedings of the 10th international conference on architectural support for programming languages and operating systems (ASPLOS-X) (2002), pp. 184--196. Google ScholarGoogle Scholar
  21. Peyton Jones, S. Tackling the awkward squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell. In Engineering theories of software construction, Marktoberdorf Summer School 2000, C. Hoare, M. Broy, and R. Steinbrueggen, Eds., NATO ASI Series, IOS Press, pp. 47--96.Google ScholarGoogle Scholar
  22. Peyton Jones, S., Gordon, A., and Finne, S. Concurrent Haskell. In 23rd ACM Symposium on Principles of Programming Languages (POPL'96), pp.295--308. Google ScholarGoogle Scholar
  23. Peyton-Jones, S., and Wadler, P. Imperative functional programming. In 20th ACM Symposium on Principles of Programming Languages(POPL'93), pp. 71--84. Google ScholarGoogle Scholar
  24. Rajwar, R., and Goodman, J. R. Transactional lock-free execution of lock-based programs. In Proceedings of the 10th international conference on architectural support for programming languages and operating systems (ASPLOS-X) (2002), pp. 5--17. Google ScholarGoogle Scholar
  25. Reppy, J. Concurrent programming in ML. Cambridge University Press, 1999. Google ScholarGoogle Scholar
  26. Satyanarayanan, M., Mashburn, H. H., Kumar, P., Steere, D. C., and Kistler, J. J. Lightweight recoverable virtual memory. ACM Transactions on Computer Systems 12, 1 (1994), 33--57. Google ScholarGoogle Scholar
  27. Shavit, N., and Touitou, D. Software transactional memory. In Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing (1995), pp. 204--213. Google ScholarGoogle Scholar
  28. Shinnar, A., Tarditi, D., Plesko, M., and Steensgaard, B. Integrating support for undo with exception handling. Tech. Rep. MSR-TR-2004-140, Microsoft Research, Dec. 2004.Google ScholarGoogle Scholar
  29. Stone, J. M., Stone, H. S., Heidelberger, P., and Turek, J. Multiple reservations and the Oklahoma update. IEEE Parallel and Distributed Technology 1, 4 (Nov. 1993), 58--71. Google ScholarGoogle Scholar
  30. Welc, A., Hosking, A. L., and Jagannathan, S. Preemption-based avoidance of priority inversion for java. In Proceedings of the 2004 International Conference on Parallel Processing (ICPP) (Aug. 2004), pp. 529--538. Google ScholarGoogle Scholar
  31. Welc, A., Jagannathan, S., and Hosking, A. Transactional monitors for concurrent objects. In Proceedings of the European Conference on Object-Oriented Programming (June 2004).Google ScholarGoogle Scholar

Index Terms

  1. Composable memory transactions

      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
        PPoPP '05: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
        June 2005
        310 pages
        ISBN:1595930809
        DOI:10.1145/1065944

        Copyright © 2005 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Check for updates

        Qualifiers

        • Article
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!