skip to main content
10.1145/3123779.3123788acmotherconferencesArticle/Chapter ViewAbstractPublication PagesecbsConference Proceedingsconference-collections
research-article

An approach to formal verification of python software transactional memory

Published:31 August 2017Publication History

ABSTRACT

Although Python is one of the most widely used programming languages, and it is a foundation for a variety of parallel and distributed computing frameworks, it still lacks an applicable and reliable software transactional memory. In this paper, we present an approach to formal verification of a Python Software Transactional Memory (PSTM) solution using UPPAAL tool. The aims are (i) to apply a formal verification process to a real STM implementation in order to derive a faithful STM model based on a PSTM design and (ii) to use developed PSTM model for automated machine-checked formal verification of core system properties such as safety and liveness using a model checker tool. Firstly, an architecture of PSTM solution is introduced. Secondly, formalization and a PSTM system model are analyzed. Finally, core PSTM system's properties are verified, namely safety, liveness, and reachability. Utilizing a UPPAAL's model checker tool it is successfully verified that the PSTM system model satisfies each of the three formerly mentioned properties.

References

  1. A. Cohen, A. Pnueli, and L. D. Zuck. Mechanical verification of transactional memories with non-transactional memory accesses. In Proceedings of the 20th International Conference on Computer Aided Verification (CAV), pages 121--134, Springer-Verlag Berlin, Heidelberg, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. Cohen, J. W. O'Leary, A. Pnueli, M. R. Tuttle, and L. D. Zuck. Verifying correctness of transactional memories. In Proceedings of the 7th International Conference on Formal Methods in Computer - Aided Design (FMCAD), pages 37--44, Austin, Texas, USA, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. B. Kordic, M. Popovic, and I. Basicevic. DPM-PSTM: Dual-port Memory Based Python Software Transactional Memory. In 4th Eastern European Regional Conference on the Engineering of Computer Based Systems (ECBS-EERC), pages 126--129, Brno, The Chez Republic, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. C. Belwal and A. M. K. Cheng. Schedulability analysis of transactions in software transactional memory using timed automata. In International Conf. on Trust, Security and Privacy in Computing and Communications (TrustCom), pages 1091--1098, Changsha, China, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. G. Behrmann, A. David, and K. G. Larsen. A Tutorial on Uppaal. In 4th International School on Formal Methods for the Design of Computer, Communication, and Software Systems (SFM-RT), LNCS 3185, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  6. http://www.uppaal.orgGoogle ScholarGoogle Scholar
  7. M. Emmi, R. Majumdar, and R. Manevich. Parameterized verification of transactional memories. In Proceedings of the 31st Conference on Programming Language Design and Implementation (PLDI), pages 134--145, Toronto, Ontario, Canada, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M. Herlihy and J. E. B. Moss. Transactional memory: Architectural support for lock-free data structures. In Proceedings of the 20th Annual International Symposium on Computer Architecture, pages 289-300, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. Popovic and B. Kordic. PSTM: Python software transactional memory. In 22nd Telecommunications Forum Telfor (TELFOR), pages 1106--1109, Belgrade, Serbia, 2014.Google ScholarGoogle ScholarCross RefCross Ref
  10. N. Shavit and D. Touitou. Software transactional memory. In Proceedings of the 14th Annual ACM Symposium on Principles of Distributed Computing (PODC), pages 204--213, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. Alur, D. L. Dill. A theory of timed automata. In Theoretical Computer Science, Volume 126, Issue 2, pages 183--235, April 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. R. Guerraoui and M. Kapalka. On the Correctness of Transactional Memory. In Proceedings of the 13th symposium on principles and practice of parallel programming (PPoPP), pages 175--184, Salt Lake City, UT, USA, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. R. Guerraoui, T. A. Henzinger, and V. Singh. Completeness and nondeterminism in model checking transactional memories. In Proceedings of the 19th international conference on concurrency theory (CONCUR), pages 21--35, Springer-Verlag Berlin, Heidelberg, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. R. Guerraoui, T. A. Henzinger, V. Singh. Model checking transactional memories. In Distributed computing, Volume 22, Issue 3, pages 129--145, March, 2010.Google ScholarGoogle Scholar
  15. S. Doherty, L. Groves, V. Luchangco, and M. Moir. Towards Formally Specifying and Verifying Transactional Memory. In Electronic Notes in Theoretical Computer Science (ENTCS), Volume 259, pages 245--261, Elsevier Science Publishers B. V. Amsterdam, The Netherlands, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. S. Doherty, L. Groves, V. Luchangco, and M. Moir. Towards formally specifying and verifying transactional memory. In Formal Aspects of Computing, Volume 25, Issue 5, pages 769--799, September, 2013. Google ScholarGoogle ScholarCross RefCross Ref
  17. T. Harris, J. R. Larus, and R. Rajwar. Transactional Memory, 2nd edition, Morgan and Claypool, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. An approach to formal verification of python software transactional memory

          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
            ECBS '17: Proceedings of the Fifth European Conference on the Engineering of Computer-Based Systems
            August 2017
            177 pages
            ISBN:9781450348430
            DOI:10.1145/3123779

            Copyright © 2017 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: 31 August 2017

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            Overall Acceptance Rate25of49submissions,51%

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader