基于重写逻辑的并发实时程序验证的优化处理系统及其方法

文档序号:6427864阅读:180来源:国知局
专利名称:基于重写逻辑的并发实时程序验证的优化处理系统及其方法
技术领域
本发明涉及的是一种计算机应用技术领域的系统及方法,具体是一种基于重写逻辑的并发实时程序验证的优化处理系统及其方法。
背景技术
根据形式化方法的一般框架,首先需要获得系统的形式化模型M(Model,或规范 Specification),然后建立系统的正确性(Correctness)、活性(Liveness)等判定性质φ (Property)。由于传统的系统开发方法不能应付系统的日益复杂化和高可靠性的要求。例如,嵌入式软件对实时要求比较高,对系统的性能和尺寸(footprint)比较严格。尤其在关键应用领域,对系统的可靠性、健壮性要求更高,在航空领域,甚至要求系统能够自修正。与一般应用软件不同,嵌入式实时并发系统一般采用低层语言编写,功能比较单一,软件规模不是很大,但功能的正确性比较重要,但仅靠软件测试不可能穷举所有的可能情况。实时并发系统同时具有离散系统和连续系统的混合特性,需要建立复杂的数学模型。软件模型在整个系统开发工程中占据着重要地位.使用模型可以提高开发者对整个系统的观察深度和控制复杂度的能力,给不同的开发阶段提供全局统一的视图和指导,提高软件质量、生产率和可靠性。建模也是进行形式化分析和验证的基础。形式化方法采用进程代数、Petri网、自动机、时态逻辑、模型验证等各种数学方法,对计算机系统进行形式化建模并验证其正确性。它起源于上世纪70年代的程序验证;至1990,其研究领域扩展到硬件验证;本世纪初又扩展到实时系统。随着嵌入式系统开始兴起,对并发实时程序的建模与验证成为研究热点。经过对现有技术的检索发现,从内容上看,国外对并发实时程序建模方面的专利主要集中于硬件方面,如美国专利号7,188,324 “Assertion morphing in functional verification of integrated circuit design”(集成电路设计的变形功能验证),美国 禾 ^lSd US2007050740 “Method and System for Performing Functional Formal Verification of Logic Circuits”(用于逻辑电路功能验证的方法及系统),欧洲专利号 1639507 "METHOD AND DEVICE FOR THE FORMAL VERIFICATION OF A CIRCUIT"(电路功能验证方法及系统)等。这些专利都是建立在目前比较成熟的硬件建模理论基础上的,这些系统的不足之处在于仅对硬件比较简单的状态进行验证,无法处理并发和实时程序的分析和优化。经过对现有技术的检索发现,美国专利文献号US2006282807,提出了一种 "SOFTWARE VERIFICATION”(软件验证)抽象求精的方法对软件正确性进行验证;美国专利文献号 US20050166167 "System and Method for Modeling, Abstraction, and Analysis of Software”(软件建模、抽象及分析系统和方法)提出了一种采用模型检验对软件进行建模和分析的方法。由于模型检验的方法带来的状态爆炸问题,如果没有较好的状态压缩算法,则无法处理并发程序的验证。
中国专利申请号200510050086. X,公布了一种“嵌入式实时操作系统的建模和代码生成方法”,该技术得到了一种对实时操作系统可视化建模图形工具。该方法仅仅是一种可视化的建模方法,没有针对程序的验证和优化。中国专利申请号200410016504. 9,提出了一种“基于程序代数的硬件编译器设计方法”,该技术基于程序代数的硬件编译器实现。但仅仅采用程序代数的理论,对编译器设计进行了设计,没有涉及软件程序的验证和优化。从上面的讨论可以看出,目前并发实时程序验证和优化的专利主要集中在硬件方面,而且对于状态爆炸没有良好的处理方法,也没有涉及到嵌入式并发实时软件相关的程序优化。

发明内容
本发明针对现有技术存在的上述不足,提供一种基于重写逻辑的并发实时程序验证的优化处理系统及其方法,通过重写逻辑验证并发实时程序,将系统的模型和即将验证的性质均采用代数模型进行状态空间优化,并特别采用时间元模型能够处理实时相关的性质,采用等价状态压缩和代数模拟优化以提高程序验证效率。本发明从重写语义的角度建立其形式化模型。分别对赋值、判断、指针、循环、函数调用等建立形式化规范,从而得到一个形式化模型M。重写模型仅仅解释了语言的语法,还需要对其语义进行解释。例如,针对IockO函数(见图1),就是获取一个全局锁, 而imlockO释放一个全局锁。而程序的正确性要求之一就是保证不会已经上锁时再调用 IockO函数,也不会在锁已经释放时,再次调用unlockO函数。针对这个具体例子,建立形式化模型,并且判断是否会出现连续上锁两次或连续解锁两次的错误状态。本发明是通过以下技术方案实现的本发明涉及一种基于重写逻辑的并发实时程序验证的优化处理系统,包括程序模型模块、性质模型模块和重写逻辑验证模块,其中程序模型模块与重写逻辑验证模块相连接并传输系统的状态转换信息,性质模型模块与重写逻辑验证模块相连接并传输待验证的系统的安全性、活性等描述信息,重写逻辑验证模块与上述程序模型模块和性质模型模块相连接并接受系统描述与系统验证性质的信息,然后采用重写逻辑虚拟机进行验证。所述的程序模型模块包括状态描述子模块、系统描述子模块和时间描述子模块, 其中状态描述子模块与系统描述子模块相连接并传输状态信息,系统描述子模块与时间描述相连接并传输信息,时间描述子模块与程序模型主模块相连接并传输经过有限抽样的时间信息。所述的性质模型模块包括线性时态逻辑子模块、公式简化子模块和性质模板库子模块,其中线性时态逻辑子模块与公式简化子模块相连并传输系统通过GUI接受用户输入,并转为线性时态逻辑公式的信息,公式简化子模块与性质模型主模块相连接并传输经过状态压缩和公式压缩的待验证性质描述信息。性质模板库子模块与性质模型主模块相连并传输常见的系统验证模板的信息简化用户输入。所述的重写逻辑验证模块包括=Kripke结构子模块,代数模拟优化子模块,和模型检验虚拟机引擎子模块。其中=Kripke结构子模块建立通过前端的性质模型模块和系统模型模块合成系统整体的Kripke结构信息并输出到代数模拟优化子模块,代数模拟优化子模块接收Kripke结构信息并采用代数模拟压缩等价状态,将优化过的Kripke结构输出到模型检验虚拟机引擎子模块,模型检验虚拟机引擎子模块采用重写逻辑验证系统是否符合安全性和活性等性质。本发明涉及上述系统的优化处理方法,包括以下步骤第一步,程序模型模块将系统状态转换为系统元模型数据结构与时间元模型数据结构,将一个不精确的并发实时程序的状态图转换严格的形式化系统元模型与时间元模型,具体为状态描述子模块针对程序中出现的各种抽象数据类型,并建立等式理论系统元模型数据结构。所述的系统元模型数据结构是指系统状态中的各部分的成员等式逻辑规范,由于并发实时程序中的软件对象是多类型的,类似于Petri网中的库所集合,其系统状态采用基于多集(MultKet)的满足交换律、结合律可交换的独异点(Monoid)代数公理来描述。所述的时间元模型数据结构是指具有Church-Rosser性质和终止性质的有限代数规范,由于在时间Petri网和时间自动机中,时间作为函数作用于库所和变迁上,产生不同的效果,但时间本身没有形式化定义。本发明分别建立连续时间、离散时间和线性时间的等式模型。所述的转换具体步骤包括1. 1)状态描述子模块接受实时并发程序或程序模板库的程序,通过建模GUI,采用成员等式逻辑规范MES( Σ,Ε)制定出系统描述的系统元模型。其主要语法结构与C语言类似,除了一些特别的语法构造,常规的C语言不加修改就可以作为初始模型。1.2)时间描述子模块分别建立连续时间、离散时间和线性时间的等式理论。建立一个等式理论的态射,将Time作为(Σ,Ε)的子理论。1. 3)系统描述子模块建立(Σ,Ε)的初始代数语义。采用商代数作为其初始代数语义,并采用模型一典范可达模型作为状态压缩的优化方法。将状态空间中等价的状态压缩成一个状态。第二步,性质模型模块将待验证性质转换为程序正确性数据结构,即对一个并发实时程序的系统性质建立线性时态逻辑(LTL)元模型的数据结构,具体为根据重写逻辑框架,程序的形式化模型建立好之后,还需要建立系统正确性的模型。本发明采用目前最为常用的LTL时序逻辑来刻画系统的正确性。并根据重写逻辑的元反射功能,通过转换为其作为系描述系统正确性性质的数据结构。所述的建立线性时态逻辑元模型的数据结构具体步骤包括2. 1)线性时态逻辑子模块通过建模⑶I建立线性时态逻辑(LTL)重写逻辑元模型,根据用户提供的和系统自定义的正确性性质,转化为LTL公式的语法,并进一步采用等式公理确定其重写语义。2. 2)公式简化子模块采用LTL公式的高效简化方法,采用重写逻辑来刻画简化算法,并直接在引擎中内建公式优化算法。2. 3)性质模板库子模块根据常见的并发实时程序的正确性性质,例如,驱动模型的一些安全规则,实时系统的优先级倒转、信号量死锁、看门狗激活条件等并采用LTL来描述,并分析整理成模板库。第三步,重写逻辑验证模块在现有的Real-Time Maude基础上,建立Kripke结构。 并采用商代数模型、等式抽象、代数模拟等程序优化方法减少状态空间,具体步骤包括3. DKripke结构子模块建立模型检验的Kripke结构,其中包括表达系统状态的特殊类子。为将一步重写关系扩展为全关系。并引入的扩展时序逻辑的标记函数;3. 2)代数模拟优化子模块通过时间抽样策略将无限时间转化为有限状态。通过代数模拟的Theoroidal映射,采用基于stuttering模拟的抽象技术,减少状态空间。3. 3)模型检验虚拟机引擎子模块通过该抽象技术和成员等式逻辑的定理证明,将模型检验推进为证明检验,并针对不同的模型建立完备性和可靠性的边界条件,验证系统是否符合安全性和活性等性质。本发明技术效果包括1.在实践中发现用一般的并发实时程序来描述嵌入式模型,缺少整体的概念。例如建模采用UML,分析采用自动机理论,建模与验证采用两套术语系统。或者将建模的模型转化成另外一种模型再进行验证。在对待时间的问题上,也不是很统一,基本上将时间作为一个内部的或外在的变量,无法用建模工具本身刻画,在分析一些与时间相关的计算模型中存在不足。针对这些不足,本发明将系统状态、验证性质统一转为重写系统元模型、时间元模型,并采用基于等价状态压缩的方法降低系统状态,提高了验证效率;2.任何一个新的验证系统的提出,其形式语法是一方面,重要的是其形式语义。本发明采用与C语言类似的语法,给出其形式化规范。源程序加少量修改就可以转化为重写逻辑的虚拟机模型。与一般的方法相比,节省了大量的建模与抽象的时间,并且简单直观, 不容易出错。与目前流行直接模型检验(Direct Model Checking)趋势相符合。采用直接模型检验的方法;本发明了提供了与时间相关的执行描述方法,并且采用代数模型压缩等价状态,提高了系统的描述的能力。3. 一个系统的行为如果能用形式化方法来描述,那么该方法必须有一个可执行的模型,即存在对系统行为的若干判定算法。模型检验和定理证明是两类用于研究系统行为的方法。而重写逻辑同时具有基于Horn子句的等式定理证明方法和基于时序逻辑的模型检验算法。本系统提供了系统描述与验证的优化方法,采用独有的代数模拟来提高验证效率,通过重写逻辑验证模块,得到了一个能够实际运行的程序验证优化系统。


图1是本发明的原理示意图。图2是本发明系统结构示意图。图3是实施例实现重写逻辑验证流程图。
具体实施例方式下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。实施例如图2所示,本实施例涉及基于重写逻辑的并发实时程序验证的优化处理系统, 包括程序模型模块、性质模型模块和重写逻辑验证模块,其中程序模型模块与重写逻辑验证模块相连接并传输系统的状态转换信息,性质模型模块与重写逻辑验证模块相连接并传输待验证的系统的安全性、活性等描述信息,重写逻辑验证模块与上述程序模型模块和性质模型模块相连接并接受系统描述与系统验证性质的信息,然后采用重写逻辑虚拟机进行验证。所述的程序模型模块包括状态描述子模块、系统描述子模块和时间描述子模块, 其中状态描述子模块与系统描述子模块相连接并传输状态信息,系统描述子模块与时间描述相连接并传输信息,时间描述子模块与程序模型主模块相连接并传输经过有限抽样的时间信息。所述的性质模型模块包括线性时态逻辑子模块、公式简化子模块和性质模板库子模块,其中线性时态逻辑子模块与公式简化子模块相连并传输系统通过GUI接受用户输入,并转为线性时态逻辑公式的信息,公式简化子模块与性质模型主模块相连接并传输经过状态压缩和公式压缩的待验证性质描述信息。性质模板库子模块与性质模型主模块相连并传输常见的系统验证模板的信息简化用户输入。所述的重写逻辑验证模块包括=Kripke结构子模块,代数模拟优化子模块,和模型检验虚拟机引擎子模块。其中=Kripke结构子模块建立通过前端的性质模型模块和系统模型模块合成系统整体的Kripke结构信息并输出到代数模拟优化子模块,代数模拟优化子模块接收Kripke结构信息并采用代数模拟压缩等价状态,将优化过的Kripke结构输出到模型检验虚拟机引擎子模块,模型检验虚拟机引擎子模块采用重写逻辑验证系统是否符合安全性和活性等性质。如图3所示,上述系统通过以下方式实现优化处理步骤1 系统模型模块对应用程序进行可视化建模,采用应用建模GUI,导入并发实时程序,并结合程序模板库,方便用户进行建模,本步骤得到的结果是程序重写模型的数据结构。步骤2 性质模型模块对并发实时程序的性质采用LTL逻辑来刻画。系统的正确性、安全性、活性、以及无死锁性等采用LTL进行刻画,并采用LTL建模GUI得到可视化的数据结构。为方便用户,这里提供一些常用性质的模板库。步骤3 通过转载转换模块,将程序模型和性质模型转换成统一的重写模型。并检查是否有语法错误,并进行合法性检查,保证模型的完整性。步骤4 将各种元模型(包括时间、系统和LTL元模型)的数据结构也同时载入到验证虚拟机中,此时,在内存中建立了程序的形式化规范与元模型合成完整的重写模型。通过时间抽样策略,将系统中的状态有限化,同时,通过等式代数描述系统状态,合并等价状态空间。实验表明,现有的模型检验方法采用偏序规约来压缩等价状态,通过启发式方法来查找偏序等价的状态,其缺陷是粒度比较粗,而且无法合并系统中通过代数模型证明的等价的状态。我们的方法采用代数模型压缩等价状态,可降低状态空间60%以上。步骤5 采用重写逻辑验证模块中的虚拟机,对该重写模型采用LTL模型验证算法,并将验证结果输出。传统的方式采用自动机理论或用最小不动点的方法来验证LTL性质,容易引起状态空间的爆炸。本发明采用代数模拟的优化方法,因为通过代数模型描述了系统的状态和性质,所以本发明才能应用代数模拟的独有的优化方法。实验表明,本优化系统可提高验证效率30 %以上。步骤6 结果分析GUI对验证结果进行分析,并将结果可视化,方便用户查看。步骤7 如果性质符合,则完成本次性质验证。用户可以从步骤1开始继续进行其他性质或程序的验证。步骤8 如果违反性质,则给出反例(counterexample),提醒用户需要错误修正。步骤9 用户根据系统提示,修改程序,继续从步骤1开始验证这些性质是否成立, 直到获得正确的结果。
权利要求
1.一种基于重写逻辑的并发实时程序验证的优化处理系统,其特征在于,包括程序模型模块、性质模型模块和重写逻辑验证模块,其中程序模型模块与重写逻辑验证模块相连接并传输系统的状态转换信息,性质模型模块与重写逻辑验证模块相连接并传输待验证的系统的安全性、活性等描述信息,重写逻辑验证模块与上述程序模型模块和性质模型模块相连接并接受系统描述与系统验证性质的信息,然后采用重写逻辑虚拟机进行验证;所述的程序模型模块包括状态描述子模块、系统描述子模块和时间描述子模块,其中状态描述子模块与系统描述子模块相连接并传输状态信息,系统描述子模块与时间描述相连接并传输信息,时间描述子模块与程序模型主模块相连接并传输经过有限抽样的时间信息;所述的性质模型模块包括线性时态逻辑子模块、公式简化子模块和性质模板库子模块,其中线性时态逻辑子模块与公式简化子模块相连并传输系统通过GUI接受用户输入, 并转为线性时态逻辑公式的信息,公式简化子模块与性质模型主模块相连接并传输经过状态压缩和公式压缩的待验证性质描述信息,性质模板库子模块与性质模型主模块相连并传输常见的系统验证模板的信息简化用户输入;所述的重写逻辑验证模块包括=Kripke结构子模块,代数模拟优化子模块,和模型检验虚拟机引擎子模块,其中=Kripke结构子模块建立通过前端的性质模型模块和系统模型模块合成系统整体的Kripke结构信息并输出到代数模拟优化子模块,代数模拟优化子模块接收Kripke结构信息并采用代数模拟压缩等价状态,将优化过的Kripke结构输出到模型检验虚拟机引擎子模块,模型检验虚拟机引擎子模块采用重写逻辑验证系统是否符合安全性和活性等性质。
2.根据权利要求1所述的基于重写逻辑的并发实时程序验证的优化处理系统,其特征是,所述的系统描述子模块采用递归的等式公理来描述系统的层次结构,并采用Horn子句的非一阶等式公理,建立系统状态中的各部分的成员等式逻辑规范,即系统元模型数据结构。
3.根据权利要求1所述的基于重写逻辑的并发实时程序验证的优化处理系统,其特征是,所述的时间描述子模块将时间的概念形式化为一个非负实数的采用等式公理描述的时间元模型数据结构。
4.一种根据上述任一权利要求所述系统的优化处理方法,其特征在于,包括以下步骤第一步,程序模型模块将系统状态转换为系统元模型数据结构与时间元模型数据结构,将一个不精确的并发实时程序的状态图转换严格的形式化系统元模型与时间元模型;第二步,性质模型模块将待验证性质转换为程序正确性数据结构,即对一个并发实时程序的系统性质建立线性时态逻辑元模型的数据结构;第三步,重写逻辑验证模块在现有的Real-Time Maude基础上,建立Kripke结构并采用商代数模型、等式抽象、代数模拟优化方法减少状态空间。
5.根据权利要求4所述的处理方法,其特征是,所述的第一步具体为状态描述子模块针对程序中出现的各种抽象数据类型,并建立等式理论系统元模型数据结构。
6.根据权利要求4所述的处理方法,其特征是,所述的第二步具体为根据重写逻辑框架,程序的形式化模型建立好之后,还需要建立系统正确性的模型。
7.根据权利要求4所述的处理方法,其特征是,所述的转换具体步骤包括 1. 1)采用成员等式逻辑规范MES( Σ,Ε)制定出系统描述的系统元模型;1. 2)分别建立连续时间、离散时间和线性时间的等式理论建立一个等式理论的态射,将Time作为(Σ,Ε)的子理论;1.3)建立(Σ,Ε)的初始代数语义采用商代数作为其初始代数语义,并采用模型-典范可达模型作为状态压缩的优化方法,将状态空间中等价的状态压缩成一个状态。
8.根据权利要求4所述的处理方法,其特征是,所述的建立线性时态逻辑元模型的数据结构具体步骤包括2.1)建立线性时态逻辑重写逻辑元模型,根据用户提供的和系统自定义的正确性性质,转化为LTL公式的语法,并进一步采用等式公理确定其重写语义;2. 2)采用LTL公式的高效简化方法,采用重写逻辑来刻画简化算法,并直接在引擎中内建公式优化算法;2.3)根据常见的并发实时程序的正确性性质并采用LTL来描述,并分析整理成模板库。
9.根据权利要求4所述的处理方法,其特征是,所述的第三步具体是指3.1)建立模型检验的Kripke结构,其中包括表达系统状态的特殊类子,为将一步重写关系扩展为全关系,并引入的扩展时序逻辑的标记函数;3. 2)通过时间抽样策略将无限时间转化为有限状态通过代数模拟的Theoroidal映射,采用基于stuttering模拟的抽象技术,减少状态空间;3. 3)通过该抽象技术和成员等式逻辑的定理证明将模型检验推进为证明检验,并针对不同的模型建立完备性和可靠性的边界条件。
全文摘要
一种计算机应用技术领域的基于重写逻辑的并发实时程序验证的优化处理系统及其方法,该系统包括程序模型模块、性质模型模块和重写逻辑验证模块,通过重写逻辑验证并发实时程序,将系统的模型和即将验证的性质均采用代数模型进行状态空间优化,并特别采用时间元模型能够处理实时相关的性质,采用等价状态压缩和代数模拟优化以提高程序验证效率。
文档编号G06F11/36GK102231133SQ20111018647
公开日2011年11月2日 申请日期2011年7月5日 优先权日2011年7月5日
发明者戚正伟, 梁阿磊, 管海兵 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1