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 条
  • [42] Run-time analysis of time-critical systems
    Zhou, SK
    Zedan, H
    Cau, A
    JOURNAL OF SYSTEMS ARCHITECTURE, 2005, 51 (05) : 331 - 345
  • [43] Run-time Monitoring and Real-time Visualization of Software Architectures
    Dragomir, Ana
    Lichter, Horst
    2013 20TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2013), VOL 1, 2013, : 396 - 403
  • [44] Run-time detection of tasking deadlocks in real-time systems with the Ada 95 annex of real-time systems
    Cheng, Jingde
    RELIABLE SOFTWARE TECHNOLOGIES - ADA - EUROPE 2006, PROCEEDINGS, 2006, 4006 : 167 - 178
  • [45] Run-time data-flow analysis
    Jianhui Li
    Binyu Zang
    Rong Wu
    Chuanqi Zhu
    Journal of Computer Science and Technology, 2002, 17 : 442 - 449
  • [46] Can a shape analysis work at run-time?
    Bogda, J
    Singh, A
    USENIX ASSOCIATION PROCEEDINGS JAVA(TM) VIRTUAL MACHINE RESEARCH AND TECHNOLOGY SYMPOSIUM, 2001, : 13 - 25
  • [47] Run-time data-flow analysis
    Li, JH
    Zang, BY
    Wu, R
    Zhu, CQ
    JOURNAL OF COMPUTER SCIENCE AND TECHNOLOGY, 2002, 17 (04) : 442 - 449
  • [48] Prediction of run-time failures using static product quality metrics
    Binkley, AB
    Schach, SR
    SOFTWARE QUALITY JOURNAL, 1998, 7 (02) : 141 - 147
  • [49] Run-time analysis assesses pump performance
    Vandevier, Joe
    OIL & GAS JOURNAL, 2010, 108 (37) : 76 - 79
  • [50] RUN-TIME DEBUGGERS
    NELSON, T
    DR DOBBS JOURNAL, 1993, 18 (12): : 36 - 36