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 条
  • [1] A shared-variable concurrency analysis of multi-threaded object-oriented programs
    de Boer, F. S.
    [J]. THEORETICAL COMPUTER SCIENCE, 2009, 410 (2-3) : 128 - 141
  • [2] An object-oriented multi-threaded software beamformation toolbox
    Hansen, Jens Munk
    Hemmsen, Martin Christian
    Jensen, Jorgen Arendt
    [J]. MEDICAL IMAGING 2011: ULTRASONIC IMAGING, TOMOGRAPHY, AND THERAPY, 2011, 7968
  • [3] Selective checkpointing and rollbacks in multi-threaded object-oriented environment
    Kasbekar, M
    Narayanan, C
    Das, CR
    [J]. IEEE TRANSACTIONS ON RELIABILITY, 1999, 48 (04) : 325 - 337
  • [4] Object-oriented design message control multi-threaded execution
    Tongyoo, T.
    Chutchavong, V.
    Sangaroon, O.
    [J]. 2006 SICE-ICASE INTERNATIONAL JOINT CONFERENCE, VOLS 1-13, 2006, : 6073 - +
  • [5] Modelling of a multi-threaded processor pipeline using object-oriented Petri nets
    Ziegler, P
    Szczerbicka, H
    [J]. ESS'98 - SIMULATION TECHNOLOGY: SCIENCE AND ART, 1998, : 200 - 207
  • [6] Quantitative Analysis of Leakage for Multi-threaded Programs
    Chen, Han
    Malacaria, Pasquale
    [J]. PLAS'07: PROCEEDINGS OF THE 2007 ACM SIGPLAN WORKSHOP ON PROGRAMMING LANGUAGES AND ANALYSIS FOR SECURITY, 2007, : 31 - 40
  • [7] Quantitative Security Analysis for Multi-threaded Programs
    Ngo, Tri Minh
    Huisman, Marieke
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2013, (117): : 34 - 48
  • [8] Dynamic deadlock analysis of multi-threaded programs
    Bensalem, Saddek
    Havelund, Klaus
    [J]. HARDWARE AND SOFTWARE VERIFICATION AND TESTING, 2006, 3875 : 208 - 223
  • [9] Multi-threaded Object Streaming
    Di Guida, Salvatore
    Govi, Giacomo
    Ojeda, Miguel
    Pfeiffer, Andreas
    Sipos, Roland
    [J]. 21ST INTERNATIONAL CONFERENCE ON COMPUTING IN HIGH ENERGY AND NUCLEAR PHYSICS (CHEP2015), PARTS 1-9, 2015, 664
  • [10] Schedulability-aware mapping of real-time object-oriented models to multi-threaded implementations
    Kim, S
    Cho, S
    Hong, S
    [J]. SEVENTH INTERNATIONAL CONFERENCE ON REAL-TIME COMPUTING SYSTEMS AND APPLICATIONS, PROCEEDINGS, 2000, : 7 - 14