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.
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- Luke Dalessandro and Michael L Scott. 2009. Strong isolation is a weak idea. In TRANSACT'09: 4th Workshop on Transactional Computing.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- Hartmut Ehrig, Grzegorz Rozenberg, and Hans-J rg Kreowski. 1999. Handbook of graph grammars and computing by graph transformation. Vol. 3. world Scientific. Google ScholarDigital Library
- 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 ScholarDigital Library
- Rachid Guerraoui and Michal Kapalka. 2010. Principles of transactional memory. Synthesis Lectures on Distributed Computing 1, 1 (2010), 1--193. Google ScholarDigital Library
- 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 ScholarDigital Library
- Maurice Herlihy and J Eliot B Moss. 1993. Transactional memory: Architectural support for lock-free data structures. Vol. 21. ACM. Google ScholarDigital Library
- Sachin Hirve, Roberto Palmieri, and Binoy Ravindran. 2017. Hipertm: High performance, fault-tolerant transactional memory. Theoretical Computer Science 688 (2017), 86--102. Google ScholarDigital Library
- 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 ScholarDigital Library
- Artem Khyzha, Hagit Attiya, Alexey Gotsman, and Noam Rinetzky. 2018. Safe privatization in transactional memory. ACM SIGPLAN 53 (2018), 233--245. Google ScholarDigital Library
- Mohsen Lesani and Jens Palsberg. 2014. Decomposing opacity. In International Symposium on Distributed Computing. Springer, 391--405.Google ScholarCross Ref
- Ognjen Marić. 2017. Formal Verification of Fault-Tolerant Systems. Ph.D. Dissertation. ETH Zurich.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- Nir Shavit and Dan Touitou. 1997. Software transactional memory. Distributed Computing 10, 2 (1997), 99--116.Google ScholarCross Ref
- 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 Scholar
- 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 ScholarDigital Library
Index Terms
A Graph Transformation System formalism for Software Transactional Memory Opacity
Recommendations
A Graph Transformation System formalism for correctness of Transactional Memory algorithms
SBLP '21: Proceedings of the 25th Brazilian Symposium on Programming LanguagesWith the constant research and development of Transactional Memory (TM) systems, various algorithms have been proposed, and their correctness is always an important aspect to take into account. When analyzing TM algorithms, one of the most commonly ...
Exploring Opacity Software Transactional Memory in Haskell through Graph Transformation
SBLP '22: Proceedings of the XXVI Brazilian Symposium on Programming LanguagesSoftware Transactional Memory (STM) is considered an alternative abstraction for concurrent programming, it has shown to be more approachable when compared to it’s main counterpart, lock-based synchronization. Haskell included language support very ...
Comments