Detecting potential deadlocks with static analysis and run-time monitoring

被引:0
|
作者
Agarwal, Rahul [1 ]
Wang, Liqiang [1 ]
Stoller, Scott D. [1 ]
机构
[1] SUNY Stony Brook, Dept Comp Sci, Stony Brook, NY 11794 USA
关键词
D O I
暂无
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Concurrent programs are notorious for containing errors that are difficult to reproduce and diagnose. A common kind of concurrency error is deadlock, which occurs when a set of threads is blocked each trying to acquire a lock held by another thread in that set. Static and dynamic (run-time) analysis techniques exist to detect deadlocks. Havelund's GoodLock algorithm detects potential deadlocks at runtime. However, it detects only potential deadlocks involving exactly two threads. This paper presents a generalized version of the GoodLock algorithm that detects potential deadlocks involving any number of threads. Run-time checking may miss errors in unexecuted code. On the positive side, run-time checking generally produces fewer false alarms than static analysis. This paper explores the use of static analysis to automatically reduce the overhead of run-time checking. We extend our type system, Extended Parameterized Atomic Java (EPAJ), which ensures absence of races and atomicity violations, with Boyapati et al.'s deadlock types. We give an algorithm that infers deadlock types for a given program and an algorithm that determines, based on the result of type inference, which run-time checks can safely be omitted. The new type system, called Deadlock-Free EPAJ (DEPAJ), has the added benefit of giving stronger atomicity guarantees than previous atomicity type systems.
引用
收藏
页码:191 / 207
页数:17
相关论文
共 50 条
  • [21] Efficient run-time monitoring of timing constraints
    Mok, Aloysius K.
    Liu, Guangtian
    Real-Time Technology and Applications - Proceedings, 1997, : 252 - 262
  • [22] AN APPROACH TO THE RUN-TIME MONITORING OF PARALLEL PROGRAMS
    CAI, WT
    TURNER, SJ
    COMPUTER JOURNAL, 1994, 37 (04): : 333 - 345
  • [23] Run-time Performance Monitoring of Hardware Accelerators
    Madronal, Daniel
    Fanni, Tiziana
    CF '19 - PROCEEDINGS OF THE 16TH ACM INTERNATIONAL CONFERENCE ON COMPUTING FRONTIERS, 2019, : 289 - 291
  • [24] Static Analysis of Run-Time Errors in Embedded Critical Parallel C Programs
    Mine, Antoine
    PROGRAMMING LANGUAGES AND SYSTEMS, 2011, 6602 : 398 - 418
  • [25] Web service run-time monitoring and visualization analysis based on probe
    Chen, Liang
    Xiong, Dapeng
    Zou, Peng
    Wang, Hua
    2016 IEEE FIRST INTERNATIONAL CONFERENCE ON DATA SCIENCE IN CYBERSPACE (DSC 2016), 2016, : 446 - 451
  • [26] STATIC ANALYSIS OF RUN-TIME ERRORS IN EMBEDDED REAL-TIME PARALLEL C PROGRAMS
    Mine, Antoine
    LOGICAL METHODS IN COMPUTER SCIENCE, 2012, 8 (01)
  • [27] A Run-Time Algorithm for Detecting Shill Bidding in Online Auctions
    Majadi, Nazia
    Trevathan, Jarrod
    Gray, Heather
    JOURNAL OF THEORETICAL AND APPLIED ELECTRONIC COMMERCE RESEARCH, 2018, 13 (03): : 17 - 49
  • [28] Detecting potential deadlocks through change impact analysis
    Metcalf, Chelsea A.
    Yavuz, Tuba
    SOFTWARE QUALITY JOURNAL, 2018, 26 (03) : 1015 - 1036
  • [29] Detecting potential deadlocks through change impact analysis
    Chelsea A. Metcalf
    Tuba Yavuz
    Software Quality Journal, 2018, 26 : 1015 - 1036
  • [30] Detecting and Tackling Run-Time Obstacles in Social Business Processes
    Maamar, Zakaria
    Sellami, Mohamed
    Faci, Noura
    Lefebvre, Sylvain
    2017 IEEE 31ST INTERNATIONAL CONFERENCE ON ADVANCED INFORMATION NETWORKING AND APPLICATIONS (AINA), 2017, : 371 - 378