CN104503837B - 基于偏序规约的中断驱动系统有界模型检验方法 - Google Patents

基于偏序规约的中断驱动系统有界模型检验方法 Download PDF

Info

Publication number
CN104503837B
CN104503837B CN201510019677.4A CN201510019677A CN104503837B CN 104503837 B CN104503837 B CN 104503837B CN 201510019677 A CN201510019677 A CN 201510019677A CN 104503837 B CN104503837 B CN 104503837B
Authority
CN
China
Prior art keywords
interrupt
state
partial order
driven system
model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510019677.4A
Other languages
English (en)
Other versions
CN104503837A (zh
Inventor
赵建华
蔡增科
戎挺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University
Original Assignee
Nanjing University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University filed Critical Nanjing University
Priority to CN201510019677.4A priority Critical patent/CN104503837B/zh
Publication of CN104503837A publication Critical patent/CN104503837A/zh
Application granted granted Critical
Publication of CN104503837B publication Critical patent/CN104503837B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

基于偏序规约的中断驱动系统有界模型检验方法,该方法采用偏序规约来约减中断驱动系统有界模型检验状态遍历过程中的路径和状态。本发明根据中断驱动系统所具有的性质,首先定义中断处理程序之间的依赖关系;然后通过静态分析,得到中断处理程序之间的相互依赖关系,并用矩阵表示;最后在状态空间遍历过程中,当全局状态上有多个中断同时满足触发条件时,将这些中断根据相互依赖关系生成偏序路径,并按照此路径执行到达新的全局状态。本发明的目的是约去冗余的遍历路径,约减状态空间,缩短验证时间。本发明具有广泛的适用性,能大幅减少中断驱动系统的模型检验时间,适用于包含较多中断数量的中断驱动系统。

Description

基于偏序规约的中断驱动系统有界模型检验方法
技术领域
本发明涉及一种中断驱动系统有界模型检验的偏序优化技术,主要利用偏序规约技术消除模型状态遍历过程中的冗余路径,减少状态空间中的状态数,缩减搜索时间,属于有界模型检验的算法优化领域。
背景技术
中断驱动系统(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中分析得到的相互依赖关系生成偏序路径,并按偏序路径依次执行各中断到达新的全局状态。
本发明首先通过静态分析得到中断处理程序间的依赖关系,然后在状态空间动态遍历的过程中,将全局状态上所有满足触发条件的中断依据其相互依赖关系生成偏序路径。全局状态按照偏序路径执行到达新的全局状态,而消除其它冗余的处理路径。
该方法包含的步骤为:
步骤1:在检验前,对中断驱动系统模型中的中断处理程序进行静态分析,根据各中断处理程序所访问的共享资源之间的关联生成依赖关系矩阵M;
步骤2:根据中断驱动系统模型中系统任务的时间自动机模型对系统任务进行调度,进入CPU栈的系统任务依据其伪代码模型执行,到达新的全局状态;
步骤3:在新的全局状态上,对中断驱动系统模型中各个中断触发的时间约束进行编码,形成线性约束并调用线性规划求解器求解,判断中断触发的时间约束是否可满足;
步骤4:若所有中断均不满足触发条件,则转步骤2;否则将满足触发条件的中断依据依赖关系矩阵生成偏序路径;
步骤5:在当前全局状态上按照偏序路径依次执行各中断处理程序,到达新的全局状态;
步骤6:检验得到的新全局状态是否满足系统规约,如果不满足则报告错误,算法终止;否则转步骤2继续执行。
所述的依赖关系矩阵M是指:设模型中有n个中断I1,I2,…,In,中断Ii对应的处理程序为Pi,矩阵M[n][n]定义为
所述的生成偏序路径是指:对于在同一全局状态上所有满足触发条件的中断的集合S,对于任意的Ii和Ij,Ii∈S∧Ij∈S,若M[i][j]=1,生成的偏序路径需包含Pi<Pj和Pj<Pi两种情况;若M[i][j]=0,则生成的偏序路径只包含Pi<Pj一种情况。
有益效果:本发明所述基于偏序规约的中断驱动系统有界模型检验算法,利用中断处理程序之间的偏序关系生成偏序路径,消除状态空间遍历过程中冗余路径的执行,从而减少状态数,提高遍历效率。具体来说,本发明所述的方法具有如下的有益效果:
1)本发明所述的基于偏序规约的中断驱动系统有界模型检验算法和基本有界模型检验算法相比,当模型中的中断数量较多、中断之间存在较少的依赖关系时,本方法的效率较一般的方法有极大的提升。
2)本发明不仅消除了状态遍历过程中的冗余路径和状态,通过执行偏序路径上的多个中断到达新的全局状态也减少了不必要的中间状态生成,减少了约束编码、求解的次数,提高了算法效率。
附图内容
图1是系统的完整框架图。
具体实施方式
一.体系结构
1、中断驱动系统模型
中断驱动系统是一类由系统任务和中断处理程序组成的实时系统,系统中主要存在四类行为:系统任务调度及处理、中断触发及处理。我们运用时间自动机对系统任务调度和中断触发事件建模,运用伪代码对处理程序建模。
对于一个时间自动机TA:=<L,l0,C,E,β>,我们令β是从E到中断事件的映射,当TA从状态l出发经过边e到达状态l’(即)时,e所对应的中断事件触发。模型中对应各个中断或系统任务的时间自动机并行运行,构成时间自动机网络TANet。系统任务和中断处理程序被抽象为伪代码模型Proc,用于描述系统任务和中断处理程序的处理过程。为了模拟整个处理过程,模型中还引入了中断向量表Vector和CPU栈Stack。
综上,整个中断驱动系统表示为Model:=<TANet,Proc,Stack,Vector>。全局状态(globalState)由时间自动机网络的状态、中断向量表状态和CPU栈的状态构成。系统行为由事件(event)描述,事件分为三种类型:1)时间自动机迁移事件,模型中某个时间自动机满足迁移发生的约束,发生状态迁移;2)程序进栈事件,中断向表中存在优先级高于CPU栈顶程序的中断,新处理程序进入CPU栈;3)程序执行事件,处于CPU栈顶的程序被执行,到达下一程序点。
2、基于偏序规约的有界模型检验算法
基于偏序规约的有界模型检算法是对基本有界模型检验算法的优化,其基本过程与基本算法大致相同:从初始全局状态出发,深度优先遍历有限阶内的状态空间,并检验可达的状态是否满足系统规约。与基本算法不同的是,基于偏序规约的算法不再让各个中断独立地触发和被响应,而是在每个全局状态上枚举满足触发条件的中断。当有中断满足触发条件时,基于偏序规约的算法首先根据静态分析结果将这些中断生成偏序路径,然后让全局状态按照偏序路径依次处理各个中断到达新的全局状态。
二.基于偏序规约的中断驱动系统有界模型检验算法
步骤1:静态分析中断处理程序,生成依赖关系矩阵;
1)分析各中断处理程序Pi,提取其访问的共享资源信息;
2)定义矩阵M[n][n](其中n的值为系统中的中断总数)。将中断处理程序进行两两分析,若Pi与Pj对某个共享资源的访问存在冲突,则M[i][j]=1;
步骤2:根据系统任务的时间自动机模型对系统任务进行调度和处理,到达新的全局状态;
步骤3:在新的全局状态上,对模型中的中断触发的时间约束进行编码,形成线性约束并调用线性规划求解器求解;
1)将各个中断对应的时间自动机上的约束与该全局状态上的约束共同编码,得到线性不等式组;
2)调用线性规划求解器求解,记录可解(即满足触发条件)的中断;
步骤4:若所有中断均不满足触发条件,则转步骤2;否则将满足触发条件的中断依据依赖关系矩阵生成偏序路径;
假设在某个全局状态下有三个中断Ii,Ij,Ik(对应的处理程序为Pi,Pj,Pk)同时处理触发状态。通过查询发现M[i][j]=1(即Pi与Pj之间存在依赖关系),则存在两种偏序关系:Pi<Pj和Pj<Pi,最终生成的偏序路径应当分别包含这两种偏序关系。因此,将得到两条偏序路径:Pi,Pj,Pk和Pj,Pi,Pk。若Pi,Pj,Pk两两之间均不存在依赖关系,则只生成一条偏序路径:Pi,Pj,Pk
步骤5:将全局状态按照偏序路径执行到达新的全局状态;
步骤6:检验得到的新全局状态是否满足系统规约,如果不满足则报告错误,算法终止;否则转步骤2继续执行;
以下是在中断驱动系统上运用基于偏序规约的有界模型检验算法和基本有界模型检验算法的效果比较示意:
最后应当说明的是:以上步骤仅用于说明本发明的技术方案而非对其限制。尽管上述步骤对本发明进行了详细的说明,相关领域的技术人员应当理解,依然可以对本发明的具体技术进行修改或者对部分技术进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。

Claims (1)

1.一种基于偏序规约的中断驱动系统有界模型检验方法,其特征在于该方法包含的步骤为:
步骤1:在检验前,对中断驱动系统模型中的中断处理程序进行静态分析,根据各中断处理程序所访问的共享资源之间的关联生成依赖关系矩阵M;
步骤2:根据中断驱动系统模型中系统任务的时间自动机模型对系统任务进行调度,进入CPU栈的系统任务依据其伪代码模型执行,到达新的全局状态;
步骤3:在新的全局状态上,对中断驱动系统模型中各个中断触发的时间约束进行编码,形成线性约束并调用线性规划求解器求解,判断中断触发的时间约束是否可满足;
步骤4:若所有中断均不满足触发条件,则转步骤2;否则将满足触发条件的中断依据依赖关系矩阵生成偏序路径;
步骤5:在当前全局状态上按照偏序路径依次执行各中断处理程序,到达新的全局状态;
步骤6:检验得到的新全局状态是否满足系统规约,如果不满足则报告错误,算法终止;否则转步骤2继续执行;
其中,所述的依赖关系矩阵M是指:设模型中有n个中断I1,I2,…,In,中断Ii对应的处理程序为Pi,矩阵M[n][n]定义为
对于在同一全局状态上所有满足触发条件的中断的集合S,对于任意的Ii和Ij,Ii∈S∧Ij∈S,若M[i][j]=1,生成的偏序路径需包含Pi<Pj和Pj<Pi两种情况;若M[i][j]=0,则生成的偏序路径只包含Pi<Pj一种情况。
CN201510019677.4A 2015-01-15 2015-01-15 基于偏序规约的中断驱动系统有界模型检验方法 Active CN104503837B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510019677.4A CN104503837B (zh) 2015-01-15 2015-01-15 基于偏序规约的中断驱动系统有界模型检验方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510019677.4A CN104503837B (zh) 2015-01-15 2015-01-15 基于偏序规约的中断驱动系统有界模型检验方法

Publications (2)

Publication Number Publication Date
CN104503837A CN104503837A (zh) 2015-04-08
CN104503837B true CN104503837B (zh) 2017-10-10

Family

ID=52945237

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510019677.4A Active CN104503837B (zh) 2015-01-15 2015-01-15 基于偏序规约的中断驱动系统有界模型检验方法

Country Status (1)

Country Link
CN (1) CN104503837B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106959890B (zh) * 2017-03-09 2019-06-14 华东师范大学 基于加权下推系统的中断验证系统
CN113098871B (zh) * 2021-04-02 2022-08-02 西安电子科技大学 一种保障系统安全性的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6209120B1 (en) * 1997-11-03 2001-03-27 Lucent Technologies, Inc. Verifying hardware in its software context and vice-versa
US7650595B2 (en) * 2005-04-29 2010-01-19 Microsoft Corporation Sound transaction-based reduction without cycle detection
CN102799517A (zh) * 2011-05-25 2012-11-28 中国科学院软件研究所 一种快速的循环扩展检测方法
CN103888462A (zh) * 2014-03-26 2014-06-25 南京邮电大学 基于局部偏序规约的控制器局域网模型验证方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6209120B1 (en) * 1997-11-03 2001-03-27 Lucent Technologies, Inc. Verifying hardware in its software context and vice-versa
US7650595B2 (en) * 2005-04-29 2010-01-19 Microsoft Corporation Sound transaction-based reduction without cycle detection
CN102799517A (zh) * 2011-05-25 2012-11-28 中国科学院软件研究所 一种快速的循环扩展检测方法
CN103888462A (zh) * 2014-03-26 2014-06-25 南京邮电大学 基于局部偏序规约的控制器局域网模型验证方法

Also Published As

Publication number Publication date
CN104503837A (zh) 2015-04-08

Similar Documents

Publication Publication Date Title
EP3447642B1 (en) System and method for predicting application performance for large data size on big data cluster
Katoen et al. The ins and outs of the probabilistic model checker MRMC
CN108595157B (zh) 区块链数据的处理方法、装置、设备和存储介质
Mantere et al. Evolutionary software engineering, a review
US10241852B2 (en) Automated qualification of a safety critical system
Mancini et al. SyLVaaS: System level formal verification as a service
US7496866B2 (en) Method for optimizing of pipeline structure placement
CN107423911A (zh) 软件成功度评价方法/系统、计算机可读存储介质及设备
Assunção et al. Establishing integration test orders of classes with several coupling measures
Gheorghe et al. Kernel P systems: from modelling to verification and testing
CN112395177A (zh) 业务数据的交互处理方法、装置、设备及存储介质
Indumathi et al. Test cases prioritization using open dependency structure algorithm
CN104503837B (zh) 基于偏序规约的中断驱动系统有界模型检验方法
Kapur et al. A software up-gradation model with testing effort and two types of imperfect debugging
CN112287603A (zh) 一种基于机器学习的预测模型构建方法、装置和电子设备
US20150081263A1 (en) Production simulation apparatus and production simulation method
CN106529304B (zh) 一种安卓应用并发漏洞检测系统
CN109800776A (zh) 素材标注方法、装置、终端和计算机可读存储介质
CN102799960A (zh) 面向数据模型的并行业务流程异常检测方法
US20120159417A1 (en) Task-based multi-process design synthesis
CN114418146A (zh) 基于规则引擎的机电设备故障诊断方法、系统及终端
CN116523284A (zh) 基于机器学习的业务操作流程自动化评估方法、系统
CN107122849B (zh) 基于SparkR的产品检测总完工时间极小化方法
CN116431498A (zh) 性能测试方法及装置、电子设备和计算机可读存储介质
Kamma et al. High productivity programmers use effective task processes in unit-testing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20150408

Assignee: HUAWEI TECHNOLOGIES Co.,Ltd.

Assignor: NANJING University

Contract record no.: X2020980005977

Denomination of invention: Bounded model checking method for interrupt driven system based on partial order protocol

Granted publication date: 20171010

License type: Common License

Record date: 20200911