Context-bounded verification of thread pools
Pascal Baumann, Rupak Majumdar, Ramanathan S. Thinniyam, Georg Zetzsche
摘要
Thread pooling is a common programming idiom in which a fixed set of worker threads are maintained to execute tasks concurrently. The workers repeatedly pick tasks and execute them to completion. Each task is sequential, with possibly recursive code, and tasks communicate over shared memory. Executing a task can lead to more new tasks being spawned. We consider the safety verification problem for thread-pooled programs. We parameterize the problem with two parameters: the size of the thread pool as well as the number of context switches for each task. The size of the thread pool determines the number of workers running concurrently. The number of context switches determines how many times a worker can be swapped out while executing a single task-like many verification problems for multithreaded recursive programs, the context bounding is important for decidability.
We show that the safety verification problem for thread-pooled, context-bounded, Boolean programs is EXPSPACE-complete, even if the size of the thread pool and the context bound are given in binary. Our main result, the EXPSPACE upper bound, is derived using a sequence of new succinct encoding techniques of independent language-theoretic interest. In particular, we show a polynomial-time construction of downward closures of languages accepted by succinct pushdown automata as doubly succinct nondeterministic finite automata. While there are explicit doubly exponential lower bounds on the size of nondeterministic finite automata accepting the downward closure, our result shows these automata can be compressed. We show that thread pooling significantly reduces computational power: in contrast, if only the context bound is provided in binary, but there is no thread pooling, the safety verification problem becomes 3EXPSPACE-complete. Given the high complexity lower bounds of related problems involving binary parameters, the relatively low complexity of safety verification with thread-pooling comes as a surprise.
• Software and its engineering → Software verification.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了最后一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper2
- Bounded Treewidth, Multiple Context-Free Grammars, and Downward ClosuresC. Aiswarya, Pascal Baumann, Prakash Saivasan, Lia Schütze 等POPL 2026 · 被引用 1 次
- The Complexity of Downward Closures of Indexed LanguagesRichard Mandel, Corto Mascle, Georg ZetzscheLICS 2026
它引用的顶会 Paper3
- Reachability in Vector Addition Systems is Ackermann-completeWojciech Czerwinski, Lukasz OrlikowskiFOCS 2021 · 被引用 69 次
- The Reachability Problem for Petri Nets is Not Primitive RecursiveJérôme LerouxFOCS 2021 · 被引用 62 次
- Context-bounded verification of liveness properties for multithreaded shared-memory programsPascal Baumann, Rupak Majumdar, Ramanathan S. Thinniyam, Georg ZetzschePOPL 2021 · 被引用 7 次
相关 Paper
- Context-Bounded Verification of Context-Free SpecificationsPascal Baumann, Moses Ganardi, Rupak Majumdar, Ramanathan S. Thinniyam 等POPL 2023 · 被引用 3 次
- Interference relation-guided SMT solving for multi-threaded program verificationHongyu Fan, Weiting Liu, Fei HePPoPP 2022 · 被引用 9 次
- Products of Recursive Programs for Hypersafety VerificationRuotong Cheng, Azadeh FarzanOOPSLA 2025
- Decidable verification under a causally consistent shared memoryOri Lahav, Udi BokerPLDI 2020 · 被引用 30 次
- CompCertOC: Verified Compositional Compilation of Multi-threaded Programs with Shared StacksLing Zhang, Yuting Wang, Yalun Liang, Zhong ShaoPLDI 2025
