一句话:提出速度空间概念,通过控制线程相对速度采样多样调度以暴露并发缺陷。
多线程程序的交错空间离散且天文数字般庞大,如何有效采样线程调度以暴露并发缺陷一直是个难题。本文观察到并发缺陷可通过调整线程的相对速度来触发,据此提出“速度空间”这一新概念:空间中的每个向量代表一族线程调度。该速度空间近似连续、易于采样,并保留特定类别的并发缺陷。作者介绍了用于探索对抗性/异常调度的速度控制调度器的设计、实现与评估。实验结果表明,该技术能有效采样到多样的调度,且其实现还在真实多线程程序中发现了此前未知的并发缺陷。
A multithreaded program's interleaving space is discrete and astronomically large, making effectively sampling thread schedules for manifesting concurrency bugs a challenging task. Observing that concurrency bugs can be manifested by adjusting thread relative speeds, this paper presents the new concept of speed space in which each vector denotes a family of thread schedules. A multithreaded program's speed space is approximately continuous, easy-to-sample, and preserves certain categories of concurrency bugs. We discuss the design, implementation, and evaluation of our speed-controlled scheduler for exploring adversarial/abnormal schedules. The experimental results confirm that our technique is effective in sampling diverse schedules. Our implementation also found previously unknown concurrency bugs in real-world multithreaded programs.
DOI 原文 ·
@inproceedings{paperbot4588,
title = {Testing multithreaded programs via thread speed control},
author = {Dongjie Chen and Yanyan Jiang and Chang Xu and Xiaoxing Ma and Jian Lu},
booktitle = {FSE},
year = {2018},
doi = {10.1145/3236024.3236077}
}