Static conflict analysis for multi-threaded object-oriented programs

被引:45
|
作者
von Praun, C [1 ]
Gross, TR [1 ]
机构
[1] ETH, Lab Software Technol, CH-8092 Zurich, Switzerland
关键词
race detection; heap shape graph; object use graph;
D O I
10.1145/780822.781145
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
A compiler for multi-threaded object-oriented programs needs information about the sharing of objects for a variety of reasons: to implement optimizations, to issue warnings, to add instrumentation to detect access violations that occur at runtime. An Object Use Graph (OUG) statically captures accesses from different threads to objects. An OUG extends the Heap Shape Graph (HSG), which is a compile-time abstraction for runtime objects (nodes) and their reference relations (edges). An OUG specifies for a specific node in the HSG a partial order of events relevant to the corresponding runtime object(s). Relevant events include read and write access, object escape, thread start and join. OUGs have been implemented in a Java compiler. Initial experience shows that OUGs are effective to identify object accesses that potentially conflict at runtime and isolate accesses that never cause a problem at runtime. The capabilities of OUGs are compared with an advanced program analysis that has been used for lock elimination. For the set of benchmarks investigated here, OUGs report only a fraction of shared objects as conflicting and reduce the number of compile-time reports in terms of allocation sites of conflicting objects by 28-92% (average 64%). For benchmarks of up to 30 KLOC, the time taken to construct OUGs is, with one exception, in the order of seconds. The information collected in the OUG has been used to instrument Java programs with checks for object races. OUGs provide precise information about object sharing and static protection, so runtime instrumentation that checks those cases that cannot be disambiguated at compile-time is sparse, and the total runtime overhead of checking for object races is only 3-86% (average 47%).
引用
收藏
页码:115 / 128
页数:14
相关论文
共 50 条
  • [31] On interleaving space exploration of multi-threaded programs
    Dongjie CHEN
    Yanyan JIANG
    Chang XU
    Xiaoxing MA
    [J]. Frontiers of Computer Science., 2021, (04) - 12
  • [32] Verifying multi-threaded C programs with SPIN
    Zaks, Anna
    Joshi, Rajeev
    [J]. MODEL CHECKING SOFTWARE, PROCEEDINGS, 2008, 5156 : 325 - +
  • [33] Partial Redundancy Elimination for Multi-threaded Programs
    El-Zawawy, Mohamed A.
    Nayel, Hamada A.
    [J]. INTERNATIONAL JOURNAL OF COMPUTER SCIENCE AND NETWORK SECURITY, 2011, 11 (10): : 127 - 133
  • [34] On interleaving space exploration of multi-threaded programs
    Chen, Dongjie
    Jiang, Yanyan
    Xu, Chang
    Ma, Xiaoxing
    [J]. FRONTIERS OF COMPUTER SCIENCE, 2021, 15 (04)
  • [35] Compositional Termination Proofs for Multi-threaded Programs
    Popeea, Corneliu
    Rybalchenko, Andrey
    [J]. TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, TACAS 2012, 2012, 7214 : 237 - 251
  • [36] A Tool to Compute the Leakage of Multi-threaded Programs
    Tri Minh Ngo
    Quang Tuan Duong
    [J]. MODERN APPROACHES FOR INTELLIGENT INFORMATION AND DATABASE SYSTEMS, 2018, 769 : 527 - 537
  • [37] Reduction for Compositional Verification of Multi-Threaded Programs
    Popeea, Corneliu
    Rybalchenko, Andrey
    Wilhelm, Andreas
    [J]. 2014 FORMAL METHODS IN COMPUTER-AIDED DESIGN (FMCAD), 2014, : 187 - 194
  • [38] Sound Predictive Fuzzing for Multi-threaded Programs
    Guo, Yuqi
    Liang, Zheheng
    Zhu, Shihao
    Wang, Jinqiu
    Yang, Zijiang
    Shen, Wuqiang
    Zhang, Jinbo
    Cai, Yan
    [J]. 2023 IEEE 47TH ANNUAL COMPUTERS, SOFTWARE, AND APPLICATIONS CONFERENCE, COMPSAC, 2023, : 810 - 819
  • [39] Lost in abstraction: Monotonicity in multi-threaded programs
    Kaiser, Alexander
    Kroening, Daniel
    Wahl, Thomas
    [J]. INFORMATION AND COMPUTATION, 2017, 252 : 30 - 47
  • [40] Effective verification of confidentiality for multi-threaded programs
    Ngo, Tri Minh
    Stoelinga, Marielle
    Huisman, Marieke
    [J]. JOURNAL OF COMPUTER SECURITY, 2014, 22 (02) : 269 - 300