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 条
  • [21] Proving termination of ω rewriting systems
    Shigeta, Y
    Akama, K
    Koike, H
    Ishikawa, T
    INTERNATIONAL CONFERENCE ON COMPUTING AND INFORMATION TECHNOLOGIES : EXPLORING EMERGING TECHNOLOGIES, 2001, : 399 - 404
  • [22] Proving termination with (Boolean) satisfaction
    Codish, Michael
    LOGIC-BASED PROGRAM SYNTHESIS AND TRANSFORMATION, 2008, 4915 : 1 - 7
  • [23] Proving Non-Termination
    Gupta, Ashutosh K.
    Henzinger, Thomas A.
    Majumdar, Rupak
    Rybalchenko, Andrey
    Xu, Ru-Gang
    POPL'08: PROCEEDINGS OF THE 35TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2008, : 147 - 158
  • [24] ON PROVING UNIFORM TERMINATION AND RESTRICTED TERMINATION OF REWRITING-SYSTEMS
    GUTTAG, JV
    KAPUR, D
    MUSSER, DR
    SIAM JOURNAL ON COMPUTING, 1983, 12 (01) : 189 - 214
  • [25] METHODOLOGY FOR PROVING THE TERMINATION OF LOGIC PROGRAMS
    WANG, B
    SHYAMASUNDAR, RK
    LECTURE NOTES IN COMPUTER SCIENCE, 1991, 480 : 214 - 227
  • [26] Proving Termination of Programs Automatically with AProVE
    Giesl, Juergen
    Brockschmidt, Marc
    Emmes, Fabian
    Frohn, Florian
    Fuhs, Carsten
    Otto, Carsten
    Pluecker, Martin
    Schneider-Kamp, Peter
    Stroeder, Thomas
    Swiderski, Stephanie
    Thiemann, Rene
    AUTOMATED REASONING, IJCAR 2014, 2014, 8562 : 184 - 191
  • [27] On proving Cε-termination of rewriting by size-change termination
    Fernández, ML
    INFORMATION PROCESSING LETTERS, 2005, 93 (04) : 155 - 162
  • [28] Proving termination assertions in dynamic logics
    Leivant, D
    19TH ANNUAL IEEE SYMPOSIUM ON LOGIC IN COMPUTER SCIENCE, PROCEEDINGS, 2004, : 89 - 98
  • [29] Advances in Proving Program Termination and Liveness
    Cook, Byron
    AUTOMATED DEDUCTION - CADA-23, 2011, 6803 : 4 - 4
  • [30] Proving Termination of C Programs with Lists
    Hensel, Jera
    Giesl, Juergen
    AUTOMATED DEDUCTION, CADE 29, 2023, 14132 : 266 - 285