一种基于中断控制流图的中断验证方法技术

技术编号:18783487 阅读:95 留言:0更新日期:2018-08-29 06:51
本发明专利技术公开了一种基于中断控制流图的中断验证方法,包括:对中断驱动程序的目标代码进行反汇编操作,获取汇编代码;根据所述汇编代码构建中断控制流图;对所述中断控制流图切片处理;根据所述中断控制流图切片,验证所述中断驱动程序的时间安全与内存安全。本发明专利技术采用中断控制流图来描述中断驱动程序的控制流信息,并利用程序切片的技术思想,对中断控制流图进行切片,进而分析验证所述目标代码的时间安全与内存安全。本发明专利技术的优点是,提出了中断驱动程序控制流结构的模型—中断控制流图,实现了在同一模型中验证中断驱动程序最常出现的两类问题,提高了中断驱动程序验证的可靠性与安全性。

【技术实现步骤摘要】
一种基于中断控制流图的中断验证方法
本专利技术涉及计算机代码静态分析领域,特别是涉及一种基于中断控制流图的中断验证方法,用于验证中断驱动程序的时间安全与内存安全。
技术介绍
当今,信息技术与移动互联网的发展日新月异,嵌入式实时系统的发展也取得了令人瞩目的进步,并且广泛应用于计算机相关产业,如:制造、医疗、交通以及通信等各个行业。除此之外,包括能源、航天、军事等关键领域都大量应用了嵌入式实时系统,因此一旦这些系统发生错误,将会造成不可估量的损失,那么实时系统工作的正确性与可靠性就显得尤为重要。实际上,实时系统工作的正确性与可靠性不仅取决于系统运行所产生的结果,同时也依赖于产生结果所需的时间,即本专利
中熟知的deadline(死亡时限)。然而在实践中,有关实时系统的正确性验证是非常困难的,特别时间性质是否满足要求的验证,因为通常系统的运行环境具有相对随机性和复杂性,这也就使得系统运行的相关命令的执行时间是不可预测的。因此,时间性质的正确验证至关重要。通过引入中断处理程序可以有效的解决上述问题,当一个暂停指令(由中断导致的)执行时,CPU会暂停当前正在执行的程序并转去执行中断处理ISR(InterruptServiceRoutine),当指令执行完毕后,CPU会继续执行之前被暂停的程序。但是,通常一个中断驱动程序中具有大量的并且不同的中断源(发出中断请求信号的来源),甚至大多数实时系统都支持中断处理程序中嵌套中断,通过一个中断可以被具有更高优先级的中断打断而实现,这些情况导致了中断处理程序同样具有随机性和复杂性。此外,由于中断机制的引入,使得中断驱动程序会产生另外一个可能影响安全的问题数据竞争——即两个线程同时访问同一个共享变量,且这两个访问中至少有一个访问是向变量中写值。因此在嵌入式领域中,仍然经常会发生由于中断引发的软件错误,然而目前有关中断数据竞争与时间性质的检测技术与方法还相对缺乏。
技术实现思路
针对上述问题,本专利技术通过公布了一种基于中断控制流图的中断验证方法,包括:对中断驱动程序的目标代码进行反汇编操作,获取汇编代码;根据所述汇编代码构建中断控制流图;对所述中断控制流图切片处理;根据所述中断控制流图切片,验证所述中断驱动程序的时间安全与内存安全。进一步的,所述中断驱动程序包括:主控程序与中断处理程序。更进一步的,所述主控程序能够被中断处理程序中断,所述中断处理程序用于处理中断任务,具有优先级,具有低优先级的中断处理程序可以被具有更高优先级的中断处理程序中断。更进一步的,所述根据汇编代码构建中断控制流图,包括:根据汇编代码获得中断信息;根据所述汇编代码获得主控控制流图与中断处理控制流图。更进一步的,所述中断信息包括:节点、所述节点中的中断处理程序、所述节点中的中断处理程序的优先级。更进一步的,所述中断控制流图通过所述中断信息将所述主控控制流图与所述中断处理控制流图相结合而获得。更进一步的,所述主控控制流图与所述中断处理控制流图均为有向图,用数学模型进行表示,该数学模型包括:节点集合与有向边集合。更进一步的,所述有向边集合中的有向边由一对有向节点对表示,所述有向节点对中的节点包含于所述节点集合中。进一步的,所述验证中断驱动程序的时间安全,包括:(1)通过所述中断控制流图切片,将中断控制流图转换为整数线性规划;(2)通过对所述整数线性规划进行求解,获得所述目标代码的最坏执行路径;(3)通过计算所述最坏执行路径的长度,验证中断驱动程序的时间安全。进一步的,所述验证中断驱动程序的内存验证方法包括:a)遍历节点,判断遍历节点是否为中断处理程序的入口,如果是,则将中断处理程序标记为真,并将上一节点的状态列表变量压入栈中;b)判断遍历节点是否为中断处理程序的返回节点:如果既是返回节点并且上一节点的状态列表变量为空,则将中断驱动程序标记设为假,并将上一节点的状态列表变量弹出栈;如果是返回节点但上一节点的状态列表变量不为空,则只进行将上一节点的状态列表变量弹出栈的操作;若不是中断处理程序的返回节点,则继续判断下一个节点;c)判断中断驱动程序标记是否为真,在标记为真的节点中找出存在数据竞争的节点,若在当前节点中存在有两个或两个以上的子程序同时访问当前节点中的同一个共享变量,并且访问的形式中最少有一个是写操作,则表示存在数据竞争,将当前节点加入到冲突节点集合中。本专利技术的优点是,与传统中断验证方法相比,针对中断驱动程序,扩展了传统的主控控制流图,提出了一个新的用以表示中断驱动程序控制流结构的模型—中断控制流图,并给出削减中断控制流图规模(切片)的方法,可有效减少15%~25%的中断控制流图的规模;根据中断控制流图切片,对中断驱动程序进行最坏执行路径分析用以验证时间安全;根据中断控制流图切片,对数据竞争进行检测用以验证内存安全,本专利技术实现了在同一模型中验证中断驱动程序最常出现的两类问题,提高了中断驱动程序验证的可靠性与安全性。附图说明通过阅读下文具体实施方式的详细描述,各种其他的优点和益处对于本领域主控技术人员将变得清楚明了。附图仅用于示出具体实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为本专利技术的验证方法框架图。图2为本专利技术的验证方法流程图。图3为本专利技术的一个可选实施例的主控控制流图结构图。图4为本专利技术的一个可选实施例的中断处理控制流图结构图。具体实施方式本专利技术公开了一种基于中断控制流图的中断验证方法,所述验证方法通过构建中断控制流图数学模型,利用中断控制流图数学模型来描述中断驱动程序的控制流信息,同时利用了程序切片的技术思想,将中断控制流图进行切片,通过对中断控制流图切片的分析来验证中断驱动程序的时间安全与内存安全。下面将结合附图详细的介绍本专利技术的验证过程。如图1所示,公开了本专利技术的验证方法的框架结构,包括:汇编代码的转换,控制流图的构建,中断信息的获取,中断控制流图的构造,中断控制流图的切片,对数据竞争分析(验证内存安全)以及对最坏路径分析(验证时间安全),其中,控制流图包括主控控制流图与中断处理控制流图。图中1中CFGs为控制流图,CFGscp为主控控制流图,CFGsISR为中断处理控制流图。具体的,对中断驱动程序目标代码进行反汇编,获得汇编代码;通过汇编代码获得控制流图,所述控制流图包括主控控制流图和中断处理控制流图;通过所述主控控制流图与所述中断处理控制流图与中断信息获得中断控制流图;根据依赖变量集合对中断控制流图进行切片;最后通过中断控制流图切片进行最坏路径分析,从而验证时间安全,通过中断控制流图切片进行数据竞争分析,从而验证内存安全。其中所述主控控制流图用于描述主控程序控制流,中断处理控制流图用于描述中断处理程序控制流,中断控制流图用于描述中断驱动程序控制流。下面将具体介绍所述时间安全与所述内存安全的验证过程以及验证方法。如图2所示,为本专利技术的中断验证方法流程图,公开了本专利技术中断验证方法的验证过程与验证方法,所述验证过程为,通过中断驱动程序目标代码获得汇编代码,根据汇编代码获得控制流图与中断信息,通过算法利用控制流图与中断信息获得中断控制流图,对中断控制流图用切片分析方法进行切片,得到中断控制流图切片,通过对中断控制流图切片进行最坏执行本文档来自技高网
...

【技术保护点】
1.一种基于中断控制流图的中断验证方法,其特征在于,包括:对中断驱动程序的目标代码进行反汇编操作,获取汇编代码;根据所述汇编代码构建中断控制流图;对所述中断控制流图切片处理;根据所述中断控制流图切片,验证所述中断驱动程序的时间安全与内存安全。

【技术特征摘要】
1.一种基于中断控制流图的中断验证方法,其特征在于,包括:对中断驱动程序的目标代码进行反汇编操作,获取汇编代码;根据所述汇编代码构建中断控制流图;对所述中断控制流图切片处理;根据所述中断控制流图切片,验证所述中断驱动程序的时间安全与内存安全。2.根据权利要求1所述的方法,其特征在于,所述中断驱动程序包括:主控程序与中断处理程序。3.根据权利要求2所述的方法,其特征在于,所述主控程序能够被中断处理程序中断,所述中断处理程序用于处理中断任务,具有优先级,具有低优先级的中断处理程序可以被具有更高优先级的中断处理程序中断。4.根据权利要求1所述的方法,其特征在于,所述根据汇编代码构建中断控制流图,包括:根据汇编代码获得中断信息;根据所述汇编代码获得主控控制流图与中断处理控制流图。5.根据权利要求4所述的方法,其特征在于,所述中断信息包括:节点、所述节点中的中断处理程序、所述节点中的中断处理程序的优先级。6.根据权利要求4所述的方法,其特征在于,所述中断控制流图通过所述中断信息将所述主控控制流图与所述中断处理控制流图相结合获得。7.根据权利要求6所述的方法,其特征在于,所述主控控制流图与所述中断处理控制流图均为有向图,用数学模型进行表示,该数学模型包括:节点集合与有向边集合。8.根据权利要求7所述的方法,其特征在于...

【专利技术属性】
技术研发人员:史建琦佘庆黄滟鸿郭欣熊家文毛侠
申请(专利权)人:华东师范大学上海华元创信软件有限公司
类型:发明
国别省市:上海,31

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

1