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.
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- http://www.uppaal.orgGoogle Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- M. Popovic and B. Kordic. PSTM: Python software transactional memory. In 22nd Telecommunications Forum Telfor (TELFOR), pages 1106--1109, Belgrade, Serbia, 2014.Google ScholarCross Ref
- 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 ScholarDigital Library
- R. Alur, D. L. Dill. A theory of timed automata. In Theoretical Computer Science, Volume 126, Issue 2, pages 183--235, April 1994. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- R. Guerraoui, T. A. Henzinger, V. Singh. Model checking transactional memories. In Distributed computing, Volume 22, Issue 3, pages 129--145, March, 2010.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- T. Harris, J. R. Larus, and R. Rajwar. Transactional Memory, 2nd edition, Morgan and Claypool, 2010. Google ScholarDigital Library
Index Terms
- An approach to formal verification of python software transactional memory
Recommendations
Formal verification of ASMs using MDGs
We present a framework for the formal verification of abstract state machine (ASM) designs using the multiway decision graphs (MDG) tool. ASM is a state based language for describing transition systems. MDG provides symbolic representation of transition ...
On the formal verification of systems of synchronous software components
SAFECOMP'12: Proceedings of the 31st international conference on Computer Safety, Reliability, and SecurityLarge asynchronous systems composed from synchronous components (so called GALS--globally asynchronous, locally synchronous--systems) pose a challenge to formal verification. We present an approach which abstracts components with contracts capturing the ...
Coverage metrics for formal verification
In formal verification, we verify that a system is correct with respect to a specification. Even when the system is proven to be correct, there is still a question of how complete the specification is and whether it really covers all the behaviors of ...
Comments