发明名称 基于绝对地址汇聚的数据访问冲突检测方法
摘要 基于绝对地址汇聚的数据访问冲突检测方法,是一种针对航天嵌入式C程序数据竞争检测的改进方法。本发明以语法分析技术为基础,结合领域知识,更准确地识别的数据竞争,降低数据竞争检测的漏报率。该方法对C源程序进行语法分析,构造源程序中使用的绝对地址集合,利用绝对地址集合,构造间接影响关系。根据C源程序中的中断响应函数,寻找C源程序包括的所有中断上下文。根据绝对地址之间的间接影响关系,判断中断上下文是否会触发数据访问冲突。与现有的数据访问冲突检测方法相比,本发明所提出的方法,能够降低漏报,提高分析准确度。
申请公布号 CN103699388A 申请公布日期 2014.04.02
申请号 CN201310744736.5 申请日期 2013.12.30
申请人 北京控制工程研究所 发明人 王政;綦艳霞;顾斌;董晓刚;陈睿;陈尧;赵雷;郭向英
分类号 G06F9/44(2006.01)I 主分类号 G06F9/44(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 陈鹏
主权项 1.基于绝对地址汇聚的数据访问冲突检测方法,其特征在于步骤如下:(1)对C源程序进行语法分析,构造源程序中使用的绝对地址集合;利用绝对地址集合,构造间接影响关系;所述的间接影响关系是一组绝对地址上的一一映射关系,具有一一映射关系的两个绝对地址中,对其中一个绝对地址的写操作会导致另一个绝对地址的读操作的结果发生变化;(2)根据C源程序中的中断响应函数,寻找C源程序包括的所有中断上下文;(3)对于步骤(2)中确定的每个中断上下文,进行下列检查:(31)将C源程序的主程序中进行读操作的绝对地址构成的集合记作R<sub>1</sub>,写操作构成的集合记作W<sub>1</sub>,将C源程序的中断中进行读操作的绝对地址构成的集合记作R<sub>2</sub>,写操作构成的集合记作W<sub>2</sub>;(32)令w<sub>1</sub>=closure(E,W<sub>1</sub>),w<sub>2</sub>=closure(E,W<sub>2</sub>),其中E为步骤(1)中的间接影响关系;w<sub>i</sub>=closure(E,W<sub>i</sub>),i=1、2的计算步骤如下:(321)令w<sub>i</sub>=W<sub>i</sub>;(322)对任意的d∈w<sub>i</sub>,令w<sub>i</sub>'=w<sub>i</sub>U{E(d)};其中E(d)为绝对地址d所处的间接影响关系对应的绝对地址;(323)如果w<sub>i</sub>=w<sub>i</sub>'那么w<sub>i</sub>=closure(E,W<sub>i</sub>)计算完毕,否则令w<sub>i</sub>=w<sub>i</sub>',并回到步骤(322);(33)令A=(w<sub>1</sub>∩w<sub>2</sub>)U(w<sub>1</sub>∩R<sub>2</sub>)U(R<sub>1</sub>∩w<sub>2</sub>);如果A=<img file="FDA0000450283230000011.GIF" wi="55" he="57" />,那么没有数据访问冲突;否则判定在集合A中的绝对地址处发生数据访问冲突。
地址 100080 北京市海淀区北京2729信箱