[发明专利]一种基于中断控制流图的中断验证方法有效
申请号: | 201810160219.6 | 申请日: | 2018-02-26 |
公开(公告)号: | CN108459963B | 公开(公告)日: | 2021-04-02 |
发明(设计)人: | 史建琦;佘庆;黄滟鸿;郭欣;熊家文;毛侠 | 申请(专利权)人: | 华东师范大学;上海华元创信软件有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京辰权知识产权代理有限公司 11619 | 代理人: | 刘广达 |
地址: | 200062 上*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 中断 控制 验证 方法 | ||
1.一种基于中断控制流图的中断验证方法,其特征在于,包括:
对中断驱动程序的目标代码进行反汇编操作,获取汇编代码;
根据所述汇编代码构建中断控制流图,所述中断控制流图为有向图;
对所述中断控制流图切片处理;
根据所述中断控制流图切片,验证所述中断驱动程序的时间安全与内存安全;
所述验证中断驱动程序的时间安全,包括:
(1)通过所述中断控制流图切片,将中断控制流图转换为整数线性规划;
(2)通过对所述整数线性规划进行求解,获得所述目标代码的最坏执行路径;
最坏路径分析过程为:
将主控程序中同一个分支中的标记节点合并成一个节点;
将对应上诉主控程序分支中同一个中断处理程序中处于同一个分支的所有标记节点合并成一个节点;其中Ci表示基础块i中的指令周期,ni表示该基础块执行的次数;
(3)通过计算所述最坏执行路径的长度,验证中断驱动程序的时间安全。
2.根据权利要求1所述的方法,其特征在于,所述中断驱动程序包括:主控程序与中断处理程序。
3.根据权利要求2所述的方法,其特征在于,所述主控程序能够被中断处理程序中断,所述中断处理程序用于处理中断任务,具有优先级,具有低优先级的中断处理程序可以被具有更高优先级的中断处理程序中断。
4.根据权利要求1所述的方法,其特征在于,所述根据汇编代码构建中断控制流图,包括:
根据汇编代码获得中断信息;
根据所述汇编代码获得主控控制流图与中断处理控制流图。
5.根据权利要求4所述的方法,其特征在于,所述中断信息包括:节点、所述节点中的中断处理程序、所述节点中的中断处理程序的优先级。
6.根据权利要求4所述的方法,其特征在于,所述中断控制流图通过所述中断信息将所述主控控制流图与所述中断处理控制流图相结合获得。
7.根据权利要求6所述的方法,其特征在于,所述主控控制流图与所述中断处理控制流图均为有向图,用数学模型进行表示,该数学模型包括:节点集合与有向边集合。
8.根据权利要求7所述的方法,其特征在于,所述有向边集合中的有向边由一对有向节点对表示,所述有向节点对中的节点包含于所述节点集合中。
9.根据权利要求2所述的方法,其特征在于,所述验证中断驱动程序的内存验证方法包括:
a)遍历节点,判断遍历节点是否为中断处理程序的入口,如果是,则将中断处理程序标记设为真,并将上一节点的状态列表变量压入栈中;
b)判断遍历节点是否为中断处理程序的返回节点:如果既是返回节点并且上一节点的状态列表变量为空,则将中断驱动程序标记设为假,并将上一节点的状态列表变量弹出栈;如果是返回节点但上一节点的状态列表变量不为空,则只进行将上一节点的状态列表变量弹出栈的操作;若不是中断处理程序的返回节点,则继续判断下一个节点;
c)判断中断驱动程序标记是否为真,在标记为真的节点中找出存在数据竞争的节点,若在当前节点中存在有两个或两个以上的子程序同时访问当前节点中的同一个共享变量,并且访问的形式中最少有一个是写操作,则表示存在数据竞争,将当前节点加入到冲突节点集合中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华东师范大学;上海华元创信软件有限公司,未经华东师范大学;上海华元创信软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810160219.6/1.html,转载请声明来源钻瓜专利网。