Page 98 - 《软件学报》2021年第7期
P. 98
软件学报 ISSN 1000-9825, CODEN RUXUEW E-mail: jos@iscas.ac.cn
Journal of Software,2021,32(7):2016–2038 [doi: 10.13328/j.cnki.jos.006265] http://www.jos.org.cn
©中国科学院软件研究所版权所有. Tel: +86-10-62562563
操作系统内核并发错误检测研究进展
石剑君, 计卫星, 石 峰
(北京理工大学 计算机学院,北京 100081)
通讯作者: 计卫星, E-mail: jwx@bit.edu.cn
摘 要: 并发错误是程序设计语言和软件工程领域的研究热点之一.近年来,针对应用程序并发错误检测的研究
已取得了很大进展.但是由于操作系统内核的并发和同步机制复杂、代码规模庞大,与应用程序级并发错误检测相
比,操作系统内核的并发错误检测研究仍面临巨大的挑战.对此,国内外学者提出了各种用于操作系统内核并发错误
检测的方法.首先介绍了并发错误的基本类型、检测方法和评价指标,讨论了现有的并发错误检测方法和工具的局
限性;然后,从形式化验证、静态分析、动态分析和静态动态相结合 4 个方面,对现有的操作系统内核并发错误检测
的研究工作进行了分类阐述,并作了系统总结和对比分析;最后,探讨了操作系统内核并发错误检测研究面临的挑
战,并对该领域未来的研究趋势进行了展望.
关键词: 操作系统;多线程并行;并发错误;缺陷检测
中图法分类号: TP306
中文引用格式: 石剑君,计卫星,石峰.操作系统内核并发错误检测研究进展.软件学报,2021,32(7):2016–2038. http://www.jos.
org.cn/1000-9825/6265.htm
英文引用格式: Shi JJ, Ji WX, Shi F. Recent progress of concurrency bug detection in operating system kernels. Ruan Jian Xue
Bao/Journal of Software, 2021,32(7):2016–2038 (in Chinese). http://www.jos.org.cn/1000-9825/6265.htm
Recent Progress of Concurrency Bug Detection in Operating System Kernels
SHI Jian-Jun, JI Wei-Xing, SHI Feng
(School of Computer Science and Technology, Beijing Institute of Technology, Beijing 100081, China)
Abstract: Concurrency bug detection is a hot research topic in the area of programming language and software engineering. In recent
years, researchers have made great progress in concurrency bug detection of applications. However, as operating system (OS) kernels
always have high concurrency, complex synchronization mechanisms, and large scale of source codes, researches on concurrency bug
detection of OS kernels are more challenging than applications. To address this issue, researchers have proposed various approaches to
detect concurrency bugs in OS kernels. This study first introduces the basic types, detection techniques, and evaluation indicators of
concurrency bug detection, and the limitations of existing concurrency bug detection tools in OS kernels are discussed. Then, researches
on concurrency bug detection in OS kernels are described from four aspects: Formal verification, static analysis, dynamic analysis, and
combination of both static and dynamic analysis. Some typical approaches are comprehensively compared. Finally, the challenges of
concurrency bug detection in OS kernels are discussed, and the future research trends in this field are prospected.
Key words: operating system; multithreading parallel; concurrency bug; defect detection
随着计算机软件技术的发展,多线程与并发编程已广泛应用于软件系统的开发过程中.多个线程的并发交
叉执行可能引发各种各样的并发错误.并发错误通常会使程序或系统陷入一种不确定的运行状态,甚至带来系
基金项目: 2018 年工业互联网创新发展工程-工业微服务与工业 APP 部署应用工业互联网平台测试床
Foundation item: 2018 Industrial Internet Innovation and Development Project—The Project of Industrial Internet Platform Test
Bed for Industrial Microservice and Application Deployment
本文由“面向非确定性的软件质量保障方法与技术”专题特约编辑陈俊洁副教授、汤恩义副教授、何啸副教授以及马晓星教
授推荐.
收稿时间: 2020-09-14; 修改时间: 2020-10-26; 采用时间: 2020-12-14; jos 在线出版时间: 2021-01-22