[发明专利]一种航天软件临界资源访问冲突检测方法有效
申请号: | 201711292178.8 | 申请日: | 2017-12-07 |
公开(公告)号: | CN107967213B | 公开(公告)日: | 2021-06-04 |
发明(设计)人: | 刘博;严云红;徐峰;程云龙;金燕;刘汉兵;刘雄;吴建桔;康岭;沈宗月;朱波;彭立章;秦金彪;吴旭东 | 申请(专利权)人: | 上海宇航系统工程研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 黄超宇;胡晶 |
地址: | 201108 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 航天 软件 临界 资源 访问 冲突 检测 方法 | ||
1.一种航天软件临界资源访问冲突检测方法,其特征在于,包括以下检测步骤:
步骤1:由词法分析单元进行词法分析后,识别出词牌流;
步骤2:语法分析单元根据词牌流进行语法分析后生成全局变量表、语法树和函数表;
步骤3:语法树结合全局变量表进行分析后得出全局变量读写关系附表,语法树结合函数表进行分析后得出函数读写关系附表和函数调用关系表;
步骤4:根据函数调用关系识别线程入口后对函数调用关系表进行线程着色;
步骤5:结合全局变量读写关系附表、函数读写关系附表和线程着色后的函数调用关系表分析检查得出全局变量读写冲突情况和写写冲突情况。
2.根据权利要求1所述的一种航天软件临界资源访问冲突检测方法,其特征在于,步骤1中,所述词法分析单元根据源码文件和头文件生成词牌流。
3.根据权利要求1所述的一种航天软件临界资源访问冲突检测方法,其特征在于,步骤1中,所述词牌流的格式与GCC编译器预编译结果保持一致,所述词牌流用于所述语法分析单元进行语法分析。
4.根据权利要求1所述的一种航天软件临界资源访问冲突检测方法,其特征在于,步骤2中,所述全局变量表记录所有变量的变量名,并为每个变量分配一个唯一的编号。
5.根据权利要求1所述的一种航天软件临界资源访问冲突检测方法,其特征在于,步骤2中,所述函数表记录所有函数的函数名,并为每个函数分配一个唯一的编号。
6.根据权利要求1所述的一种航天软件临界资源访问冲突检测方法,其特征在于,步骤2中,所述语法树用于识别函数对全局变量的读写情况,所述语法树的识别代码中的语法操作,所述语法树的格式与GCC编译器编译结果保持一致。
7.根据权利要求1所述的一种航天软件临界资源访问冲突检测方法,其特征在于,步骤3中,所述全局变量读写关系附表记录每个全局变量被函数表中的函数读写的情况。
8.根据权利要求1所述的一种航天软件临界资源访问冲突检测方法,其特征在于,步骤3中,所述函数读写关系附表记录每个函数对全局变量表中的变量读写的情况。
9.根据权利要求1所述的一种航天软件临界资源访问冲突检测方法,其特征在于,步骤3中,所述函数调用关系表根据语法树识别出的函数调用关系,记录每个函数调用其他函数的情况和被其他函数调用的情况。
10.根据权利要求1所述的一种航天软件临界资源访问冲突检测方法,其特征在于,步骤4中,所述识别线程入口是根据函数调用关系表识别调用图中入度为0并且出度不为0的节点编号,将该节点设置为线程入口,并分配唯一的线程编号。
11.根据权利要求1所述的一种航天软件临界资源访问冲突检测方法,其特征在于,步骤4中,所述线程着色是根据线程入口将该线程中每个被调用的函数进行线程标号,表示该被调函数属于当前线程,同一函数被多个线程着色。
12.根据权利要求1所述的一种航天软件临界资源访问冲突检测方法,其特征在于,步骤5中,
所述读写冲突为不同线程函数对同一变量进行读写,导致读取数据不完整或数据异常的情况;
所述写写冲突为不同线程函数对同一变量进行写,导致写数据失败或写数据错误的情况。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海宇航系统工程研究所,未经上海宇航系统工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711292178.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:RF用例的生成方法、装置和系统
- 下一篇:应用程序的测试方法及测试设备