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 2017 Publication 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.
[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.
[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.
[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.
[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.
[6]
http://www.uppaal.org
[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.
[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.
[9]
M. Popovic and B. Kordic. PSTM: Python software transactional memory. In 22nd Telecommunications Forum Telfor (TELFOR), pages 1106--1109, Belgrade, Serbia, 2014.
[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.
[11]
R. Alur, D. L. Dill. A theory of timed automata. In Theoretical Computer Science, Volume 126, Issue 2, pages 183--235, April 1994.
[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.
[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.
[14]
R. Guerraoui, T. A. Henzinger, V. Singh. Model checking transactional memories. In Distributed computing, Volume 22, Issue 3, pages 129--145, March, 2010.
[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.
[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.
[17]
T. Harris, J. R. Larus, and R. Rajwar. Transactional Memory, 2nd edition, Morgan and Claypool, 2010.

Cited By

View all
  • (2019)A solution of concurrent queue on local and distributed Python STMTelfor Journal10.5937/telfor1901064P11:1(64-69)Online publication date: 2019
  • (2019)Formal Verification of Python Software Transactional Memory Serializability Based on the Push/Pull Semantic ModelProceedings of the 6th Conference on the Engineering of Computer Based Systems10.1145/3352700.3352706(1-8)Online publication date: 2-Sep-2019
  • (2019)A Protein Structure Prediction Program Architecture Based on a Software Transactional MemoryProceedings of the 6th Conference on the Engineering of Computer Based Systems10.1145/3352700.3352701(1-9)Online publication date: 2-Sep-2019
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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
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]

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 31 August 2017

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. UPPAAL
  2. formal verification
  3. python
  4. software transactional memory

Qualifiers

  • Research-article

Funding Sources

  • Ministry of Education, Science and Technological Development of the Republic of Serbia
  • Secretary of Science and Technology Development of the Province of Vojvodina

Conference

ECBS '17

Acceptance Rates

Overall Acceptance Rate 25 of 49 submissions, 51%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)11
  • Downloads (Last 6 weeks)2
Reflects downloads up to 09 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2019)A solution of concurrent queue on local and distributed Python STMTelfor Journal10.5937/telfor1901064P11:1(64-69)Online publication date: 2019
  • (2019)Formal Verification of Python Software Transactional Memory Serializability Based on the Push/Pull Semantic ModelProceedings of the 6th Conference on the Engineering of Computer Based Systems10.1145/3352700.3352706(1-8)Online publication date: 2-Sep-2019
  • (2019)A Protein Structure Prediction Program Architecture Based on a Software Transactional MemoryProceedings of the 6th Conference on the Engineering of Computer Based Systems10.1145/3352700.3352701(1-9)Online publication date: 2-Sep-2019
  • (2019)A Solution of Python Distributed STM Based on Data Replication2019 27th Telecommunications Forum (TELFOR)10.1109/TELFOR48224.2019.8971069(1-4)Online publication date: Nov-2019
  • (2019)Verifying Opacity of a Modified PSTM2019 International Symposium on Theoretical Aspects of Software Engineering (TASE)10.1109/TASE.2019.00008(232-239)Online publication date: Jul-2019

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media