论文标题
多线程共享内存程序的上下文结合的LIVISE属性验证
Context-Bounded Verification of Liveness Properties for Multithreaded Shared-Memory Programs
论文作者
论文摘要
我们研究了上下文结合的验证多线程,共享内存程序的LIVISE属性,每个线程都可以在其中产生其他线程。我们的主要结果表明,与上下文结合的公平终止是该模型可决定的。上下文结合的意味着可以将每个产卵线程变为上下文,将固定的恒定次数切换。我们的证明是技术性的,因为公平终止需要推理无限的许多线程的组成,每个线程都有巨大的堆栈。实际上,相关问题的技术不适用,这些技术取决于用有限状态螺纹替换下降线的技术。取而代之的是,我们引入了与状态(VASS)的矢量添加系统(称为气球(VASSB))作为中间模型的扩展;它是独立兴趣的无限国家模型。 VASSB允许代币本身是标记(气球)。我们表明,有界的公平终止将减少到VASSB的公平终止。我们通过显示一系列减少来确定后一种问题是可以决定的:从公平终止到VASSB的配置可及性,再到VASS的可及性问题。对于下限,在线程运行到完成(无上下文开关)的特殊情况下,已知公平终止已经是非元素。 我们还表明,与上下文结合的终止的更简单问题是2Expspace-Complete,与结合的复杂性匹配 - 以及对于安全验证而言,技术 - 实际上是技术。此外,在上下文结合的情况下,我们还可以显示公平饥饿的相关问题,该问题检查是否可以在公平运行中饿死某些线程。该可定义性采用从公平饥饿到公平终止的复杂降低。像公平终止一样,这个问题也是非元素的。
We study context-bounded verification of liveness properties of multi-threaded, shared-memory programs, where each thread can spawn additional threads. Our main result shows that context-bounded fair termination is decidable for the model; context-bounded implies that each spawned thread can be context switched a fixed constant number of times. Our proof is technical, since fair termination requires reasoning about the composition of unboundedly many threads each with unboundedly large stacks. In fact, techniques for related problems, which depend crucially on replacing the pushdown threads with finite-state threads, are not applicable. Instead, we introduce an extension of vector addition systems with states (VASS), called VASS with balloons (VASSB), as an intermediate model; it is an infinite-state model of independent interest. A VASSB allows tokens that are themselves markings (balloons). We show that context bounded fair termination reduces to fair termination for VASSB. We show the latter problem is decidable by showing a series of reductions: from fair termination to configuration reachability for VASSB and thence to the reachability problem for VASS. For a lower bound, fair termination is known to be non-elementary already in the special case where threads run to completion (no context switches). We also show that the simpler problem of context-bounded termination is 2EXPSPACE-complete, matching the complexity bound---and indeed the techniques---for safety verification. Additionally, we show the related problem of fair starvation, which checks if some thread can be starved along a fair run, is also decidable in the context-bounded case. The decidability employs an intricate reduction from fair starvation to fair termination. Like fair termination, this problem is also non-elementary.