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 条
  • [1] Detecting potential deadlocks with static analysis and run-time monitoring
    Agarwal, R.
    Wang, Liqinng
    Stoller, Scott D.
    Lect. Notes Comput. Sci., (191-207):
  • [2] Run-time detection of communication deadlocks in occam 2 programs
    Zhao, JJ
    Abe, H
    Nomura, Y
    Cheng, JD
    Ushijima, K
    CORRECT MODELS OF PARALLEL COMPUTING, 1997, 49 : 97 - 107
  • [3] A static analysis method for run-time errors detection
    Cao, WJ
    Xu, SH
    Shi, ZG
    ISTM/2005: 6th International Symposium on Test and Measurement, Vols 1-9, Conference Proceedings, 2005, : 6615 - 6618
  • [4] Run-Time Analysis and Instrumentation for Communication Overlap Potential
    Natvig, Thorvald
    Elster, Anne C.
    RECENT ADVANCES IN THE MESSAGE PASSING INTERFACE, 2010, 6305 : 42 - 49
  • [5] A Method of Run-Time Detecting DDoS Attacks
    Li, Muhai
    Li, Ming
    PROCEEDINGS OF THE 12TH WSEAS INTERNATIONAL CONFERENCE ON COMPUTERS , PTS 1-3: NEW ASPECTS OF COMPUTERS, 2008, : 393 - +
  • [6] Static checker of semantic run-time errors
    Kuksenko, SV
    Shelekhov, VI
    PROGRAMMING AND COMPUTER SOFTWARE, 1998, 24 (06) : 288 - 300
  • [7] Run-time monitoring of distributed applications
    Logean, X
    Dietrich, F
    Karamyan, H
    Koppenhöfer, S
    MIDDLEWARE'98: IFIP INTERNATIONAL CONFERENCE ON DISTRIBUTED SYSTEMS PLATFORMS AND OPEN DISTRIBUTED PROCESSING, 1998, : 459 - 474
  • [8] Run-Time Monitoring of Electronic Contracts
    Kyas, Marcel
    Prisacariu, Cristian
    Schneider, Gerardo
    AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS, PROCEEDINGS, 2008, 5311 : 397 - 407
  • [9] Reducing the Overhead of Assertion Run-time Checks via Static Analysis
    Stulova, Nataliia
    Morales, Jose F.
    Hermenegildo, Manuel V.
    PROCEEDINGS OF THE 18TH INTERNATIONAL SYMPOSIUM ON PRINCIPLES AND PRACTICE OF DECLARATIVE PROGRAMMING (PPDP 2016), 2016, : 90 - 103
  • [10] Run-time Monitoring and Formal Analysis of Information Flows in Chromium
    Bauer, Lujo
    Cai, Shaoying
    Jia, Limin
    Passaro, Timothy
    Stroucken, Michael
    Tian, Yuan
    22ND ANNUAL NETWORK AND DISTRIBUTED SYSTEM SECURITY SYMPOSIUM (NDSS 2015), 2015,