首页 | 本学科首页   官方微博 | 高级检索  
     

基于变量访问序模式的中断数据竞争检测方法
引用本文:陈睿,杨孟飞,郭向英. 基于变量访问序模式的中断数据竞争检测方法[J]. 软件学报, 2016, 27(3): 547-561
作者姓名:陈睿  杨孟飞  郭向英
作者单位:北京控制工程研究所,北京 100190;北京轩宇信息技术有限公司,北京 100190,中国空间技术研究院,北京 100094,北京控制工程研究所,北京 100190;北京轩宇信息技术有限公司,北京 100190
基金项目:国家自然科学基金(91118007)
摘    要:在航天嵌入式软件等中断驱动型软件中,中断数据竞争问题十分突出.然而中断在并发语义、同步机制、调度机制等方面与线程(任务)有诸多不同,具有Ad-hoc特征,难以统一刻画,因此主流的数据竞争检测方法并不适用.以航天嵌入式软件数据竞争案例库为基础进行了系统分析,提出刻画有害中断数据竞争的7种缺陷模式.针对其中最常见且最难解决的单变量访问序模式,基于抽象解释提出一种支持过程间分析、中断并发分析的高效检测方法.设计并实现了相应的检测工具SpaceDRC.实验表明,SpaceDRC能够在145毫秒内检测出约21400行程序中的真实数据竞争.SpaceDRC已经在多个航天重点型号中进行了应用,使得中断数据竞争专项分析的效率提高了至少5倍,并且降低了问题遗漏率.

关 键 词:中断驱动型程序  数据竞争  抽象解释
收稿时间:2015-07-14
修稿时间:2015-10-20

Interrupt Data Race Detection Based on Shared Variable Access Order Pattern
CHEN Rui,YANG Meng-Fei and GUO Xiang-Ying. Interrupt Data Race Detection Based on Shared Variable Access Order Pattern[J]. Journal of Software, 2016, 27(3): 547-561
Authors:CHEN Rui  YANG Meng-Fei  GUO Xiang-Ying
Affiliation:Beijing Institute of Control Engineering, Beijing 100190, China;Beijing Sunwise Information Technology Ltd., Beijing 100190, China,China Academy of Space Technology, Beijing 100094, China and Beijing Institute of Control Engineering, Beijing 100190, China;Beijing Sunwise Information Technology Ltd., Beijing 100190, China
Abstract:Interrupt data race is a category of critical bugs in interrupt-driven software such as aerospace embedded software. However, interrupt is much different from thread or task on concurrency semantics, synchronization and schedule, and its ad-hoc characteristics is hard to describe. So the state-of-art data race detection techniques are not suitable to interrupt-driven software. In this paper, we review the data race bug repository of aerospace embedded software systematically, and propose seven bug patterns for harmful interrupt data race. For the pattern single variable access order, we propose an efficient abstract interpretation based detection method which supports inter-procedural and interrupt concurrency analysis. A tool named SpaceDRC is designed to verify our method. The evaluation results show that, SpaceDRC only takes 145ms to detect 21400 lines of code and finds the true bugs. Up to now, SpaceDRC has been applied in several aerospace missions, increasing the efficiency of interrupt data race inspection by 5 times and making a significant reduction in bug omission rate.
Keywords:Interrupt-driven program   data race   Abstract interpretation
点击此处可从《软件学报》浏览原始摘要信息
点击此处可从《软件学报》下载全文
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号