Proving Thread Termination

被引:24
|
作者
Cook, Byron
Podelski, Andreas
Rybalchenko, Andrey
机构
关键词
Concurrency; Formal verification; Model checking; Program verification; Termination; Threads;
D O I
10.1145/1250734.1250771
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Concurrent programs are often designed such that certain functions executing within critical threads must terminate. Examples of such cases can be found in operating systems, web servers, e-mail clients, etc. Unfortunately, no known automatic program termination prover supports a practical method of proving the termination of threads. In this paper we describe such it procedure. The procedure's scalability is achieved through the use of environment models that abstract away the surrounding threads. The procedure's accuracy is due to a novel method of incrementally constructing environment abstractions. Our method finds the conditions that a thread requires of its environment in order to establish termination by looking at the conditions necessary to prove that certain paths through the thread represent well-founded relations if executed M isolation of the other threads. The paper gives a description of experimental results using an implementation of our procedure on Windows device drivers, and a description of it previously unknown bug found with the tool.
引用
收藏
页码:320 / 330
页数:11
相关论文
共 50 条
  • [41] Proving Termination Properties with MU-TERM
    Alarcon, Beatriz
    Gutierrez, Raul
    Lucas, Salvador
    Navarro-Marset, Rafael
    ALGEBRAIC METHODOLOGY AND SOFTWARE TECHNOLOGY, 2011, 6486 : 201 - 208
  • [42] Some Techniques for Proving Termination of the Hyperresolution Calculus
    N. Peltier
    Journal of Automated Reasoning, 2005, 35 : 391 - 427
  • [43] PROVING TERMINATION WITH MULTI-SET ORDERINGS
    DERSHOWITZ, N
    MANNA, Z
    COMMUNICATIONS OF THE ACM, 1979, 22 (08) : 465 - 476
  • [44] Automated Methods For Proving Program Termination And Liveness
    Rybalchenko, Andrey
    11TH INTERNATIONAL SYMPOSIUM ON SYMBOLIC AND NUMERIC ALGORITHMS FOR SCIENTIFIC COMPUTING (SYNASC 2009), 2009, : 17 - 17
  • [45] Matrix interpretations for proving termination of term rewriting
    Endrullis, Jorg
    Waldmann, Johannes
    Zantema, Hans
    AUTOMATED REASONING, PROCEEDINGS, 2006, 4130 : 574 - 588
  • [46] Some techniques for proving termination of the hyperresolution calculus
    Peltier, N.
    Journal of Automated Reasoning, 2005, 35 (04): : 391 - 427
  • [47] Transformational methodology for proving termination of logic programs
    Rao, MRKK
    Kapur, D
    Shyamasundar, RK
    JOURNAL OF LOGIC PROGRAMMING, 1998, 34 (01): : 1 - 41
  • [48] Ramsey vs. Lexicographic Termination Proving
    Cook, Byron
    See, Abigail
    Zuleger, Florian
    TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, TACAS 2013, 2013, 7795 : 47 - 61
  • [49] An analysis for proving probabilistic termination of biological systems
    Gori, Roberta
    Levi, Francesca
    THEORETICAL COMPUTER SCIENCE, 2013, 471 : 27 - 73
  • [50] A TRANSFORMATIONAL METHODOLOGY FOR PROVING TERMINATION OF LOGIC PROGRAMS
    RAO, MRKK
    KAPUR, D
    SHYAMASUNDAR, RK
    LECTURE NOTES IN COMPUTER SCIENCE, 1992, 626 : 213 - 226