[发明专利]基于偏序规约的中断驱动系统有界模型检验方法有效
申请号: | 201510019677.4 | 申请日: | 2015-01-15 |
公开(公告)号: | CN104503837B | 公开(公告)日: | 2017-10-10 |
发明(设计)人: | 赵建华;蔡增科;戎挺 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙)32249 | 代理人: | 杨晓玲 |
地址: | 210093 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 规约 中断 驱动 系统 模型 检验 方法 | ||
技术领域
本发明涉及一种中断驱动系统有界模型检验的偏序优化技术,主要利用偏序规约技术消除模型状态遍历过程中的冗余路径,减少状态空间中的状态数,缩减搜索时间,属于有界模型检验的算法优化领域。
背景技术
中断驱动系统(interrupt-driven system)是一类由系统任务和中断处理程序组成的实时系统。在现实生活中,中断驱动系统被广泛应用于安全关键系统中,如医疗辅助系统、轨道交通控制系统、航空航天控制系统。因此,系统的正确性保障有着特别重要的现实意义。但中断事件的发生时间和顺序具有极大的不确定性,不同的中断触发时间和顺序将导致不同的系统行为,而系统的某些设计错误只有在特定的行为下才会显现出来。从而导致中断驱动系统的测试工作开销极大且效率低下,依靠测试无法保障系统正确性。
模型检验(model checking)是一种以形式化方式构造系统的模拟运行过程,自动检测系统是否满足某些期望规约的新兴技术。其主要过程是:先把要验证的系统构造为有限状态自动机,通过自动机状态间的转移来模拟系统运行;把要验证的系统规约用时序逻辑进行说明。在模拟系统运行的过程中,将自动机状态间的转移约束和系统规约编码成SAT(satisfiability)实例,然后利用SAT工具求解,根据解的情况来判断系统规约是否满足。模型检验的实质是利用计算机的快速计算能力,通过穷举被检验系统的状态空间中的每一个状态来验证系统规约是否满足。这也使得模型检验技术面临一个具大的挑战--状态空间爆炸。有界模型检验(bounded model checking,简称BMC)则是为应对这一挑战而被提出的技术,它通过设置上边界K,只遍历从初始状态出发K阶可达的所有状态,从而限定了状态空间的增长。
在过去的工作中,我们提出了中断驱动系统的有界模型检验算法,其主要内容包括:
1)提出时间自动机+伪代码的建模方式。用一个时间自动机模拟一个中断源或处于同一周期中的多个系统任务,自动机上状态的迁移表示系统任务调度事件或中断触发事件,而自动机状态和边上的约束用以表示事件发生的时间约束。将真实系统中的程序语句抽象得到伪代码,用于描述程序行为。为了模拟中断驱动系统的任务处理过程,我们还在模型中引入了中断向量表和CPU栈。
2)定义了全局状态(global state)用以描述模型所处的状态,和事件(event)用以描述模型所具有行为。算法从初始全局状态出发,以该状态上可能触发的事件为边到达后继状态,检验新得到的全局状态是否满足系统规约。依此循环,进行深度优先状态空间遍历。
但即便是使用有界模型检验,当系统中的中断数量达到一定数量时,检验过程花费的时间变得不可接受。因为系统中的中断处于并发状态,在每一个全局状态上都要判断各个中断是否满足触发条件。当有多个中断同时满足触发条件时,为了枚举所有可能的状态,检验算法需要按照所有可能的组合和排列去触发并处理中断,得到新的全局状态。由于排列的总数与基数是阶乘关系,当中断数量较大时,在各全局状态上可能同时满足触发条件的中断数(即基数)也较大,从而导致状态空间爆炸式增长。
发明内容
技术问题:本发明的目的是提供基于偏序规约的中断驱动系统有界模型检验方法,在中断驱动系统的模型状态空间遍历过程中,某些中断的处理顺序并不影响后继状态。本发明通过对中断处理程序的静态分析,定义偏序关系,使用偏序规约技术消除得到相同后继状态的路径,约减状态空间,缩短遍历时间。
技术方案:在实际模型中,中断的触发及处理的顺序可能并不影响后继状态,即在某个全局状态下按不同的顺序去触发并执行了相同的几个中断后,将得到相同的全局状态。偏序规约(partial order reduction)是一种状态约简技术,它通过定义状态迁移之间的独立或依赖关系来消除遍历路径中冗余的状态迁移,来达到约减状态空间的目的。因此,为了应对中断驱动系统有界模型检验所面临的状态空间爆炸问题,我们提出了基于偏序规约的一套实用而有效的解决方案:
1)通过对实际的中断驱动系统分析,定义中断处理程序间的依赖关系;
2)分析待检验系统中的所有中断处理程序,判断它们相互之间是否具有所定义的依赖关系,并将分析结果存入相应的数据结构;
3)用深度优化遍历算法遍历状态空间,当全局状态上有多个中断满足触发条件时,将这些中断按步骤2中分析得到的相互依赖关系生成偏序路径,并按偏序路径依次执行各中断到达新的全局状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510019677.4/2.html,转载请声明来源钻瓜专利网。