Consistency Checking for Refactoring from Coarse-Grained Locks to Fine-Grained Locks

被引:0
作者
Zhang, Yang [1 ]
Liu, Jingjing [1 ]
Qi, Lin [1 ]
Meredith, Grant [2 ]
机构
[1] Hebei Univ Sci & Technol, Sch Informat Sci & Engn, Shijiazhuang 050018, Peoples R China
[2] Federat Univ Australia, Global Profess Sch, Ballarat, Australia
关键词
Refactoring; consistency checking; parallel extended finite automaton; dependency analysis; VERIFICATION; PROGRAMS;
D O I
10.1142/S0218194024500141
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Refactoring for locks is widely used to improve the scalability and performance of concurrent programs. However, when refactoring from coarse-grained locks to fine-grained locks, the behavior of concurrent programs may be changed. To this end, we present LockCheck, a consistency-checking approach based on the parallel extended finite automaton for fine-grained locks. First, we model the critical sections of concurrent programs through control flow analysis and dependency analysis. Second, we sequentialize the concurrent programs to get all the possible transition paths. Furthermore, it reduces the exploration of the redundant paths using partial order theory to obtain the compared transition paths. Finally, we combine consistency rules to check the consistency of the program before and after refactoring. We evaluated LockCheck in five open-source projects. A total of 1528 refactoring operations have been evaluated and 93 inconsistent refactoring operations have been detected. The results show that LockCheck can effectively detect inconsistent behavior when coarse-grained locks are refactored into fine-grained locks.
引用
收藏
页码:1063 / 1093
页数:31
相关论文
共 30 条
  • [1] Verifying Parallel Code After Refactoring Using Equivalence Checking
    Abadi, Moria
    Keidar-Barner, Sharon
    Pidan, Dmitry
    Veksler, Tatyana
    [J]. INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2019, 47 (01) : 59 - 73
  • [2] Optimized Refactoring Mechanisms to Improve Quality Characteristics in Object-Oriented Systems
    Almogahed, Abdullah
    Mahdin, Hairulnizam
    Omar, Mazni
    Zakaria, Nur Haryani
    Muhammad, Ghulam
    Ali, Zulfiqar
    [J]. IEEE ACCESS, 2023, 11 : 99143 - 99158
  • [3] [Anonymous], 2020, About us
  • [4] Peahen: Fast and Precise Static Deadlock Detection via Context Reduction
    Cai, Yuandao
    Ye, Chengfeng
    Shi, Qingkai
    Zhang, Charles
    [J]. PROCEEDINGS OF THE 30TH ACM JOINT MEETING EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, ESEC/FSE 2022, 2022, : 784 - 796
  • [5] Cassandra, ABOUT US
  • [6] Verification of Concurrent Programs Using Trace Abstraction Refinement
    Cassez, Franck
    Ziegler, Frowin
    [J]. LOGIC FOR PROGRAMMING, ARTIFICIAL INTELLIGENCE, AND REASONING, (LPAR-20 2015), 2015, 9450 : 233 - 248
  • [7] AUTOMATIC VERIFICATION OF FINITE-STATE CONCURRENT SYSTEMS USING TEMPORAL LOGIC SPECIFICATIONS
    CLARKE, EM
    EMERSON, EA
    SISTLA, AP
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1986, 8 (02): : 244 - 263
  • [8] Hippodrome: Data Race Repair Using Static Analysis Summaries
    Costea, Andreea
    Tiwari, Abhishek
    Chianasta, Sigmund
    Kishore, R.
    Roychoudhury, Abhik
    Sergey, Ilya
    [J]. ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2023, 32 (02)
  • [9] DIXON A, 2021, 2021 36 ANN ACM IEEE, P1
  • [10] Farzan A., ARXIV