一种用于检测中断驱动型程序数据竞争的系统技术方案

技术编号:5508045 阅读:545 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种用于检测中断驱动型程序数据竞争的系统,该系统由前端处理器和数据竞争分析引擎组成;其中前端处理器包括:反汇编器、词法/语法分析器、控制流图构造器、函数调用关系图构造器;数据竞争分析引擎包括:中断优先级分析模块、中断状态分析模块、内存访问分析模块和竞争条件识别器。本发明专利技术采用静态检测方法,以源代码或汇编代码为输入,无需运行被测程序,能够在软件开发的早期阶段应用,自动化程度较高;对中断使能状态进行了迭代的过程间分析,其中,“迭代”能够最大限度地收集所有可能的中断切换情况,减少数据竞争检测的漏报;“过程间”考虑了函数调用以及中断进入对程序状态的影响,提高了检测的精确度和检测效率。

【技术实现步骤摘要】

本专利技术涉及一种检测数据竞争的系统,特别是涉及一种用于检测中断驱动型程序 数据竞争的系统,属于计算机软件测试与验证技术。
技术介绍
数据竞争是并发程序中一种复杂的程序行为,它发生在多个并发执行流(如线 程、任务、中断)对同一数据单元进行同时读写,且至少其中一个操作是写操作时。由于数 据竞争中涉及的两次访问之间的次序不可确定,程序可能会因此产生异常行为,严重时甚 至会导致软件或系统失效。然而,数据竞争具有小概率的特点,往往需要在特定的外部环 境、执行流切换条件下才会发生,且难以复现,对其调试和测试都很困难。因而,数据竞争的 自动检测方法和工具近年来一直都是业界的重要关注点。值得注意的是,目前已知的数据竞争检测方法大都面向多线程程序,如微软 公司的200510063733.0号专利“用于检测多线程程序中潜在竞争的方法和系统”、ACM Symposium on Operating Systems Principles (SOSP' 2003)中 Engler 等人的"RacerX : Effective, static detection of race conditions and 本文档来自技高网...

【技术保护点】
一种用于检测中断驱动型程序数据竞争的系统,其特征在于:由前端处理器和数据竞争分析引擎组成;所述前端处理器包括:反汇编器、词法/语法分析器、控制流图构造器、函数调用关系图构造器;所述数据竞争分析引擎包括:中断优先级分析模块、中断状态分析模块、内存访问分析模块和竞争条件识别器;反汇编器:用于将被测目标程序进行反汇编并输出汇编代码;词法/语法分析器:对被测程序的源代码或汇编代码进行词法分析、语法分析,输出抽象语法树和符号表;控制流图构造器:利用抽象语法树和符号表为被测程序中每个函数构造出控制流图;函数调用关系图构造器:利用抽象语法树和符号表为被测程序构造出函数调用关系图;中断优先级分析模块,用于分析...

【技术特征摘要】

【专利技术属性】
技术研发人员:陈睿郭向英段永顥张西超侯成杰董燕于志杰魏鹏吴瑾武占峰张金巍曾霞左万娟
申请(专利权)人:北京控制工程研究所
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1