skip to main content
10.1145/3355378.3355387acmotherconferencesArticle/Chapter ViewAbstractPublication PagessblpConference Proceedingsconference-collections
research-article

A Graph Transformation System formalism for Software Transactional Memory Opacity

Authors Info & Claims
Published:23 September 2019Publication History

ABSTRACT

In order to check the correctness of Transactional Memory (TM) systems, a formal description of the implementations guarantees is necessary. There are many consistency conditions for TM, one of the most common is opacity. In this paper we present a formal definition to prove opacity on TM histories using a Graph Transformation System (GTS). We explore the connection between a history definition, a sequence of actions to the TM, and a result of direct graph transformations based on the actions portrayed in the history. Thus, creating a framework capable of observing the property of opacity on TM histories.

References

  1. Paolo Baldan, Andrea Corradini, Fernando Luís Dotti, Luciana Foss, Fabio Gadducci, and Leila Ribeiro. 2008. Towards a notion of transaction in graph rewriting. Electronic Notes in Theoretical Computer Science 211 (2008), 39--50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. M. Bardohl, R.and Minas, G. Taentzer, and A. Schurr. 1999. Application of graph transformation to visual languages. Handbook of graph grammars and computing by graph transformation 2 (1999), 105. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Victor Bushkov, Dmytro Dziuma, Panagiota Fatourou, and Rachid Guerraoui. 2018. The PCL Theorem: Transactions cannot be Parallel, Consistent, and Live. Journal of the ACM (JACM) 66, 1 (2018), 2. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Simone André da Costa Cavalheiro, Luciana Foss, and Leila Ribeiro. 2017. Theorem proving graph grammars with attributes and negative application conditions. Theoretical computer science 686 (2017), 25--77.Google ScholarGoogle Scholar
  5. Austin T Clements, M Frans Kaashoek, Eddie Kohler, Robert T Morris, and Nickolai Zeldovich. 2017. The scalable commutativity rule: designing scalable software for multicore processors. Commun. ACM 60, 8 (2017), 83--90. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Luke Dalessandro and Michael L Scott. 2009. Strong isolation is a weak idea. In TRANSACT'09: 4th Workshop on Transactional Computing.Google ScholarGoogle Scholar
  7. Luke Dalessandro, Michael L Scott, and Michael F Spear. 2010. Transactions as the foundation of a memory consistency model. In International Symposium on Distributed Computing. Springer, 20--34. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Peter Damron, Alexandra Fedorova, Yossi Lev, Victor Luchangco, Mark Moir, and Daniel Nussbaum. 2006. Hybrid transactional memory. In ACM Sigplan Notices, Vol. 41. ACM, 336--346. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Giorgio Delzanno and Riccardo Traverso. 2013. Specification and validation of link reversal routing via graph transformations. In International SPIN Workshop on Model Checking of Software. Springer, 160--177.Google ScholarGoogle ScholarCross RefCross Ref
  10. Simon Doherty, Lindsay Groves, Victor Luchangco, and Mark Moir. 2009. Towards formally specifying and verifying transactional memory. Electronic Notes in Theoretical Computer Science 259 (2009), 245--261. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Simon Doherty, Lindsay Groves, Victor Luchangco, and Mark Moir. 2013. Towards formally specifying and verifying transactional memory. Formal Aspects of Computing 25, 5 (2013), 769--799. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Dmytro Dziuma, Panagiota Fatourou, and Eleni Kanellou. 2015. Consistency for transactional memory computing. In Transactional Memory. Foundations, Algorithms, Tools, and Applications. Springer, 3--31.Google ScholarGoogle Scholar
  13. Hartmut Ehrig, Grzegorz Rozenberg, and Hans-J rg Kreowski. 1999. Handbook of graph grammars and computing by graph transformation. Vol. 3. world Scientific. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Rachid Guerraoui and Michałt Kapałtka. 2008. On the correctness of transactional memory. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming. ACM, 175--184. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Rachid Guerraoui and Michal Kapalka. 2010. Principles of transactional memory. Synthesis Lectures on Distributed Computing 1, 1 (2010), 1--193. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Tim Harris, Simon Marlow, Simon Peyton-Jones, and Maurice Herlihy. 2005. Composable Memory Transactions. In Proceedings of the Tenth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP '05). New York, NY, USA, 48--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Maurice Herlihy and J Eliot B Moss. 1993. Transactional memory: Architectural support for lock-free data structures. Vol. 21. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Sachin Hirve, Roberto Palmieri, and Binoy Ravindran. 2017. Hipertm: High performance, fault-tolerant transactional memory. Theoretical Computer Science 688 (2017), 86--102. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Damien Imbs and Michel Raynal. 2012. Virtual world consistency: A condition for STM systems (with a versatile protocol with invisible read operations). Theoretical Computer Science 444 (2012), 113--127. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Artem Khyzha, Hagit Attiya, Alexey Gotsman, and Noam Rinetzky. 2018. Safe privatization in transactional memory. ACM SIGPLAN 53 (2018), 233--245. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Mohsen Lesani and Jens Palsberg. 2014. Decomposing opacity. In International Symposium on Distributed Computing. Springer, 391--405.Google ScholarGoogle ScholarCross RefCross Ref
  22. Ognjen Marić. 2017. Formal Verification of Fault-Tolerant Systems. Ph.D. Dissertation. ETH Zurich.Google ScholarGoogle Scholar
  23. Alexander Matveev and Nir Shavit. 2015. Reduced hardware norec: A safe and scalable hybrid transactional memory. In ACM SIGARCH Computer Architecture News, Vol. 43. ACM, 59--71. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Victor Pankratius and Ali-Reza Adl-Tabatabai. 2011. A study of transactional memory vs. locks in practice. In Proceedings of the twenty-third annual ACM symposium on Parallelism in algorithms and architectures. ACM, 43--52. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Sebastiano Peluso, Roberto Palmieri, Paolo Romano, Binoy Ravindran, and Francesco Quaglia. 2015. Disjoint-access parallelism: Impossibility, possibility, and cost of transactional memory implementations. In Proceedings of the 2015 ACM Symposium on Principles of Distributed Computing. ACM, 217--226. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Arend Rensink, Maarten De Mol, and Eduardo Zambon. 2019. GROOVE GRaphs for Object-Oriented VErification (Version 5.7.4). https://groove.cs.utwente.nl/Google ScholarGoogle Scholar
  27. Nir Shavit and Dan Touitou. 1997. Software transactional memory. Distributed Computing 10, 2 (1997), 99--116.Google ScholarGoogle ScholarCross RefCross Ref
  28. Konrad Siek and Pawełt T Wojciechowski. 2014. Zen and the art of concurrency control: an exploration of TM safety property space with early release in mind. Proc. WTTM 14 (2014).Google ScholarGoogle Scholar
  29. Jons-Tobias Wamhoff, Torvald Riegel, Christof Fetzer, and Pascal Felber. 2010. RobuSTM: A robust software transactional memory. In Symposium on Self-Stabilizing Systems. Springer, 388--404. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A Graph Transformation System formalism for Software Transactional Memory Opacity

        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 Other conferences
          SBLP '19: Proceedings of the XXIII Brazilian Symposium on Programming Languages
          September 2019
          86 pages
          ISBN:9781450376389
          DOI:10.1145/3355378

          Copyright © 2019 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: 23 September 2019

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Research
          • Refereed limited

          Acceptance Rates

          SBLP '19 Paper Acceptance Rate10of21submissions,48%Overall Acceptance Rate22of50submissions,44%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader