Recent Progress of Concurrency Bug Detection in Operating System Kernels

被引:0
|
作者
Shi J.-J. [1 ]
Ji W.-X. [1 ]
Shi F. [1 ]
机构
[1] School of Computer Science and Technology, Beijing Institute of Technology, Beijing
来源
Ruan Jian Xue Bao/Journal of Software | 2021年 / 32卷 / 07期
关键词
Concurrency bug; Defect detection; Multithreading parallel; Operating system;
D O I
10.13328/j.cnki.jos.006265
中图分类号
学科分类号
摘要
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. © Copyright 2021, Institute of Software, the Chinese Academy of Sciences. All rights reserved.
引用
收藏
页码:2016 / 2038
页数:22
相关论文
共 88 条
  • [1] Leveson NG, Turner CS., An investigation of the therac-25 accidents, Computer, 26, 7, pp. 18-41, (1993)
  • [2] Zhang W, Lim J, Olichandran R, Scherpelz J, Jin G, Lu S, Reps T., ConSeq: Detecting concurrency bugs through sequential errors, ACM SIGARCH Computer Architecture News, 39, 1, pp. 251-264, (2011)
  • [3] Nasdaq's facebook Glitch came from race conditions, (2020)
  • [4] Yin Z, Yuan D, Zhou Y, Pasupathy S, Bairavasundaram L., How do fixes become bugs?, Proc. of the Joint European Software Engineering Conf. and Symp. on the Foundations of Software Engineering (ESEC/FSE), pp. 26-36, (2011)
  • [5] Naik M, Aiken A, Whaley J., Effective static race detection for Java, Proc. of the 27th ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI), pp. 308-319, (2006)
  • [6] Cai Y, Zhang J, Cao L, Liu J., A deployable sampling strategy for data race detection, Proc. of the 24th ACM SIGSOFT Symp. on Foundations of Software Engineering (FSE), pp. 810-821, (2016)
  • [7] Fonseca P, Li C, Rodrigues R., Finding complex concurrency bugs in large multi-threaded applications, Proc. of the 6th Conf. on Computer Systems (EuroSys), pp. 215-228, (2011)
  • [8] Weeratunge D, Zhang X, Sumner WN, Jagannathan S., Analyzing concurrency bugs using dual slicing, Proc. of the 19th Symp. on Software Testing and Analysis (ISSTA), pp. 253-264, (2010)
  • [9] Zhang T, Jung C, Lee D., ProRace: Practical data race detection for production use, ACM SIGPLAN Notices, 45, 2, pp. 149-162, (2017)
  • [10] Liu H, Li G, Lukman JF, Et al., DCatch: Automatically detecting distributed concurrency bugs in cloud systems, ACM SIGPLAN Notices, 45, 1, pp. 677-691, (2017)