{"title":"验证修改后的PSTM的不透明度","authors":"Yucheng Fang, Huibiao Zhu, Jiaqi Yin","doi":"10.1109/TASE.2019.00008","DOIUrl":null,"url":null,"abstract":"Software transactional memory (STM) provides programmers with a high-level programming abstraction for synchronization of parallel processes, allowing blocks of codes that execute in an interleaved manner to be treated as an atomic block. Python Software Transactional Memory (PSTM) is an STM implementation in Python language. Its presentation fills a gap that Python lacks an applicable and reliable software transactional memory. PSTM satisfies the basic transaction properties, however it does not satisfy opacity, which defines conditions for serialising concurrent transaction. To alleviate this issue, we modify the PSTM implementation and present a new PSTM called PSTM-M. Based on PSTM-M, we verify opacity of this implementation. We present the formalization of opacity which is based on the history model of transaction. Further, we explain why PSTM does not satisfy opacity and present a modified PSTM called PSTM-M. Finally, we give a machine-checked proof for the opacity of PSTM-M based on the theorem prover Coq.","PeriodicalId":183749,"journal":{"name":"2019 International Symposium on Theoretical Aspects of Software Engineering (TASE)","volume":"16 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Verifying Opacity of a Modified PSTM\",\"authors\":\"Yucheng Fang, Huibiao Zhu, Jiaqi Yin\",\"doi\":\"10.1109/TASE.2019.00008\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Software transactional memory (STM) provides programmers with a high-level programming abstraction for synchronization of parallel processes, allowing blocks of codes that execute in an interleaved manner to be treated as an atomic block. Python Software Transactional Memory (PSTM) is an STM implementation in Python language. Its presentation fills a gap that Python lacks an applicable and reliable software transactional memory. PSTM satisfies the basic transaction properties, however it does not satisfy opacity, which defines conditions for serialising concurrent transaction. To alleviate this issue, we modify the PSTM implementation and present a new PSTM called PSTM-M. Based on PSTM-M, we verify opacity of this implementation. We present the formalization of opacity which is based on the history model of transaction. Further, we explain why PSTM does not satisfy opacity and present a modified PSTM called PSTM-M. Finally, we give a machine-checked proof for the opacity of PSTM-M based on the theorem prover Coq.\",\"PeriodicalId\":183749,\"journal\":{\"name\":\"2019 International Symposium on Theoretical Aspects of Software Engineering (TASE)\",\"volume\":\"16 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2019-07-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2019 International Symposium on Theoretical Aspects of Software Engineering (TASE)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/TASE.2019.00008\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2019 International Symposium on Theoretical Aspects of Software Engineering (TASE)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/TASE.2019.00008","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Software transactional memory (STM) provides programmers with a high-level programming abstraction for synchronization of parallel processes, allowing blocks of codes that execute in an interleaved manner to be treated as an atomic block. Python Software Transactional Memory (PSTM) is an STM implementation in Python language. Its presentation fills a gap that Python lacks an applicable and reliable software transactional memory. PSTM satisfies the basic transaction properties, however it does not satisfy opacity, which defines conditions for serialising concurrent transaction. To alleviate this issue, we modify the PSTM implementation and present a new PSTM called PSTM-M. Based on PSTM-M, we verify opacity of this implementation. We present the formalization of opacity which is based on the history model of transaction. Further, we explain why PSTM does not satisfy opacity and present a modified PSTM called PSTM-M. Finally, we give a machine-checked proof for the opacity of PSTM-M based on the theorem prover Coq.