CN115827494A - 一种设计层形式化验证方法及系统 - Google Patents

一种设计层形式化验证方法及系统 Download PDF

Info

Publication number
CN115827494A
CN115827494A CN202310024402.4A CN202310024402A CN115827494A CN 115827494 A CN115827494 A CN 115827494A CN 202310024402 A CN202310024402 A CN 202310024402A CN 115827494 A CN115827494 A CN 115827494A
Authority
CN
China
Prior art keywords
layer
design
function model
design layer
function
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.)
Granted
Application number
CN202310024402.4A
Other languages
English (en)
Other versions
CN115827494B (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.)
Institute of Network Engineering Institute of Systems Engineering Academy of Military Sciences
Original Assignee
Institute of Network Engineering Institute of Systems Engineering Academy of Military Sciences
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 Institute of Network Engineering Institute of Systems Engineering Academy of Military Sciences filed Critical Institute of Network Engineering Institute of Systems Engineering Academy of Military Sciences
Priority to CN202310024402.4A priority Critical patent/CN115827494B/zh
Publication of CN115827494A publication Critical patent/CN115827494A/zh
Application granted granted Critical
Publication of CN115827494B publication Critical patent/CN115827494B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种设计层形式化验证方法及系统,属于计算机软件设计及测试技术领域。该方法包括:获取所述操作系统的设计层文档;使用Isabelle元语言对数据结构和状态进行形式化描述;基于经过形式化描述的数据结构和状态,使用状态单子对设计层的算法的函数功能进行形式化描述,以得到设计层功能函数模型;获取操作系统的需求层功能函数模型,对设计层功能函数模型与需求层功能函数模型进行精化验证。本发明实现了操作系统设计层形式化描述的通用性,提高了操作系统设计层形式化验证的效率。

Description

一种设计层形式化验证方法及系统
技术领域
本发明属于计算机软件设计及测试技术领域,具体地,涉及一种操作系统设计层的形式化验证方法及系统。
背景技术
随着物联网和智能场景的加速融合,嵌入式操作系统被广泛运用。尤其是在智慧城市、智能驾驶、机器人系统等智能化场景中,其基础设施的安全性和可靠性要求更是严苛,因此需要运用形式化验证的方法来提高操作系统的可靠性和安全性。然而,操作系统中的各模块进行的交互行为都要满足安全属性,其有限的硬件资源和交互的实时性问题也要求更高的可靠性,这就要求在设计上进行安全验证。
澳大利亚国家 ICT 实验室(NICTA)推出了第一个经过完全形式化验证的微内核seL4。虽然seL4从需求层、设计层到实现层被完整形式化验证了是没有bug的,但是其验证框架可扩展性低,验证效率低。对seL4进行形式化验证框架是单体化的,其功能模块具有高度耦合的特性,基于此所描述的规范,不易进行拓展和移植。整个seL4操作系统的代码量为8700行,其人力成本为20人年2016年耶鲁大学基于Coq定理证明器完整验证了CertiKOS的功能正确性及相关的安全性质。
设计层作为衔接需求层和源码层的中间层级,能更早的发现其中的错误,有助于对需求层和源码层的建模和验证都有促进作用。然而目前,在设计层的形式化验证一般都需要对特定的数据结构和算法进行形式化规范的建模和验证,增加了难度。此外,现有验证方法的形式化规范不易进行扩展,验证效率较低。
发明内容
本发明公开了一种操作系统的设计层形式化验证方法及系统,具有通用性,能够扩展到其他系统中进行形式化验证。
本发明实施例的第一方面,提供了一种操作系统的设计层形式化验证方法,包括:步骤101、获取所述操作系统的设计层文档;其中,所述设计层文档包括所述操作系统的设计层的数据结构、状态和算法的描述;步骤102、使用Isabelle元语言对所述数据结构和所述状态进行形式化描述;步骤103、基于经过形式化描述的所述数据结构和所述状态,使用状态单子对设计层算法中的函数功能进行形式化描述,以得到设计层功能函数模型;步骤104、获取所述操作系统的需求层功能函数模型,对所述设计层功能函数模型与所述需求层功能函数模型进行精化验证。
在其他的一个实施例中,所述步骤104中,对所述设计层功能函数模型与所述需求层功能函数模型进行精化验证,包括:对所述设计层功能函数模型与所述需求层功能函数模型的功能一致性进行精化验证;其中,所述需求层功能函数模型使用Isabelle元语言对所述操作系统的需求层的函数功能进行形式化描述。
在其他的一个实施例中,所述步骤104中,所述精化验证使用霍尔三元组形式化描述需要证明的功能一致性;其中,所述霍尔三元组的前置条件为设计层功能函数模型的状态与需求层功能函数模型的状态相同的等式,中间动作为函数功能,后置条件是设计层功能函数模型经过该动作操作后的单子状态与需求层功能函数模型经过该动作后的状态相同的等式。
在其他的一个实施例中,所述步骤104中,所述对所述设计层功能函数模型与所述需求层功能函数模型进行精化验证,包括:对设计层功能函数模型的功能函数进行展开以进行验证描述;使用wpsimp命令简化设计层功能函数的验证描述,以生成Isabelle元语言构造的高阶逻辑表达式;对需求层功能函数模型的同一功能函数进行展开以进行验证描述;调用辅助引理对所述霍尔三元组进行自动验证,以验证调用功能函数前的需求层与设计层的状态是否一致,以及调用功能函数后的设计层与需求层的状态是否一致。
在其他的一个实施例中,所述步骤102中,通过record命令对所述数据结构进行形式化描述,通过definition命令对所述状态进行形式化描述;所述步骤103中,通过definition命令构建所述函数功能。
在其他的一个实施例中,所述步骤104中,通过 apply ( simp add: 功能函数)命令对设计层功能函数模型或需求层功能函数模型的功能函数进行展开以进行验证描述。
本发明实施例的第二方面,提供了一种操作系统的设计层形式化验证系统,包括:获取模块,配置为获取所述操作系统的设计层文档;其中,所述设计层文档包括所述操作系统的设计层的数据结构、状态和算法的描述;形式化描述模块,配置为:使用Isabelle元语言对所述数据结构和所述状态进行形式化描述;以及基于经过形式化描述的所述数据结构和所述状态,使用状态单子对设计层的算法的函数功能进行形式化描述,以得到设计层功能函数模型;精化验证模块,配置为获取所述操作系统的需求层功能函数模型,对所述设计层功能函数模型与所述操作系统的需求层功能函数模型进行精化验证。
此外,本发明的实施例还提供了一种电子设备,包括:存储器,用于存储计算机程序;处理器,与所述存储器数据耦合,用于在执行所述计算机程序时,实现所述的设计层形式化验证方法。
此外,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现所述的设计层形式化验证方法。
本发明通过在Isabelle中构建状态单子形式化建模语言,可以将函数式编程过程化,使用状态单子构建形式化验证模型以定义模型的基本数据类型与结构、明确系统状态,并根据系统各模块的功能需求使用状态单子构建功能规范,实现了形式化描述的通用性。
本发明在构建系统执行模型之后,使用状态单子技术提供的霍尔逻辑谓词,能够验证各模块实现规范的功能正确性,通过求精证明来验证设计层与需求层规范的一致性,提高了形式化验证的效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其他特征、目的和优点将会变得更明显:
图1为根据本发明实施例的操作系统的设计层形式化验证方法流程示意图。
图2为根据本发明实施例的操作系统设计层形式化验证系统组成示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
术语解释:
Isabelle/HOL:是一个具备工业成熟度的形式化方法和工具环境,其形式证明资源库包含300多个开源项目,合计150多万行形式规约与证明。
State Monad:状态单子,是函数式编程中的一种对过程式编程语言的建模方式。
图1为根据本发明实施例的操作系统的设计层形式化验证方法100流程示意图。如图1所示,该方法包括如下步骤:
步骤101、获取操作系统的设计层文档;
本发明中,操作系统的设计层文档例如可以是自然语言描述的文本文件。其中,所述设计层文档包括操作系统的设计层的数据结构、状态和算法的描述。
步骤102、使用Isabelle元语言对设计层的数据结构和状态进行形式化描述;
操作系统的设计层是对需求层的算法和数据结构进行设计,因此对设计层进行形式化验证包括对数据结构和算法进行形式化建模,该步骤102首先对设计层的数据结构和状态进行形式化描述。
本发明中,使用Isabelle元语言,通过record命令对设计层的数据结构进行形式化描述。具体地,以record “数据命名::类型”方式逐条进行描述。例如:
record plugin =
name :: string
actorID :: int64_t
本发明中,使用Isabelle元语言,通过definition命令对状态进行形式化描述。具体地,包括其命名和类型,通过“definition 状态命名::类型”来表示状态命名和类型,并通过where语句来对状态变量进行初始化赋值。例如:
definition ACTOR_STATE_INIT :: "int" where
"ACTOR_STATE_INIT ≡ 0"
步骤103、基于经过形式化描述的数据结构和状态,使用状态单子语言对设计层的算法进行形式化描述,以得到设计层功能函数模型;
本发明中,根据设计层文档,利用状态单子语言(State Monad)对设计层的算法的函数功能进行描述,以得到设计层功能函数模型。
首先,在Isabelle中通过imports命令导入状态单子相关的库。例如,一个示例为:
imports
"lib/Monad_WP/NonDetMonad"
然后,根据设计层文档,使用状态单子函数构建设计层的算法的函数功能。
具体地,通过definition 函数名:: “参数类型,返回值类型 nondet_monad”来表示一个函数定义。使用condition条件句来判断是否满足执行下面语句块的条件,例如使用condition语句判断plugin的状态是FINISH或者PAUSE。语句块使用 do ... od来描述,带异常的语句块使用doE ... odE来描述。使用return表示结束返回。
步骤104、获取操作系统的需求层功能函数模型,对设计层功能函数模型与需求层功能函数模型进行精化验证。
对设计层功能函数模型与需求层功能函数模型进行精化验证,也即对设计层的函数与需求层的函数进行功能一致性证明。本发明中,使用霍尔三元组形式化描述需要证明的功能一致性。其中,所述霍尔三元组的前置条件为设计层功能函数模型的状态与需求层功能函数模型的状态相同的等式,中间动作为函数功能,后置条件是设计层功能函数模型经过该动作操作后的单子状态与需求层功能函数模型经过该动作后的状态相同的等式。
在一个实施例中,该步骤104具体包括:
步骤1041、对设计层功能函数模型的功能函数进行展开以进行验证描述;
具体地,可以通过 apply( simp add: 设计层功能函数) 对设计层功能函数模型的功能函数进行展开以进行验证描述。
步骤1042、使用wpsimp命令简化设计层功能函数的验证描述,以生成Isabelle元语言构造的高阶逻辑表达式;
具体地,用NonDetMonadVCG中的wpsimp命令简化设计层功能函数的验证描述,以生成Isabelle元语言构造的高阶逻辑表达式。
步骤1043、对需求层功能函数模型的同一功能函数进行展开以进行验证描述;
具体地,可以通过 apply( simp add: 需求层功能函数) 对需求层功能函数模型的功能函数进行展开以进行验证描述。
步骤1044、调用辅助引理对霍尔三元组进行自动验证,以验证调用功能函数前的需求层与设计层的状态是否一致,以及调用功能函数后的设计层与需求层的状态是否一致。
具体地,在Isabelle中调用已定义的辅助引理,或引用自定义的辅助引理对霍尔三元组进行自动验证。
以群体智能操作系统插件模块包含暂停函数,该暂停函数的功能是将当前插件状态修改为暂停状态。以该暂停函数为例,其形式化验证过程包括:
(1)对系统的四种运行状态(running、pause、ready、finish),使用Isabelle元语言,通过definition进行形式化描述。
(2)使用Isabelle元语言对插件的数据结构,通过record命令进行形式化描述。该插件包括四种数据:name:string;actorID:int64_t;state:pluginstate;duration:int。
(3)根据设计文档中的暂停函数功能描述,用状态单子函数构建形式化描述。具体地,通过definition 函数名:: “参数类型,返回值类型 nondet_monad”来表示一个函数定义。使用condition条件句来判断是否满足执行下面语句块的条件,使用condition语句判断plugin的状态是FINISH或者PAUSE。语句块使用 do ... od来描述,带异常的语句块使用doE ... odE来描述。使用return表示结束返回。
(4)对设计层描述的暂停函数与需求层描述的暂停函数进行求精验证。具体地,通过lemma描述霍尔三元组。使用apply调用验证方法,例如:
apply (simp add:des_pause_def)
apply wpsimp
本发明的另外一个实施例,还提供了一种操作系统的设计层形式化验证系统200,如图2所示,该设计层形式化验证系统200包括:
获取模块201,配置为获取所述操作系统的设计层文档;其中,所述设计层文档包括所述操作系统的设计层的数据结构、状态和算法的描述;
形式化描述模块202,配置为:使用Isabelle元语言对设计层的数据结构和状态进行形式化描述;以及基于经过形式化描述的所述数据结构和所述状态,使用状态单子对设计层算法的函数功能进行形式化描述,以得到设计层功能函数模型;
精化验证模块203,配置为获取所述操作系统的需求层功能函数模型,对所述设计层功能函数模型与所述操作系统的需求层功能函数模型进行精化验证。
此外,本发明的实施例还公开了一种电子设备,包括:存储器,用于存储计算机程序;处理器,与所述存储器数据耦合,用于在执行所述计算机程序时实现所述的形式化验证方法。
此外,本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的形式化验证方法。
虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明发明构思的情况下,可以对本发明实施例的技术方案进行修改或等同替换都不应脱离本发明实施例的技术方案的精神和范围。

Claims (9)

1.一种操作系统的设计层形式化验证方法,其特征在于,包括:
步骤101、获取所述操作系统的设计层文档;其中,所述设计层文档包括所述操作系统的设计层的数据结构、状态和算法的描述;
步骤102、使用Isabelle元语言对所述数据结构和所述状态进行形式化描述;
步骤103、基于经过形式化描述的所述数据结构和所述状态,使用状态单子对设计层的算法的函数功能进行形式化描述,以得到设计层功能函数模型;
步骤104、获取所述操作系统的需求层功能函数模型,对所述设计层功能函数模型与所述需求层功能函数模型进行精化验证。
2.根据权利要求1所述的设计层形式化验证方法,其特征在于,所述步骤104中,对所述设计层功能函数模型与所述需求层功能函数模型进行精化验证,包括:对所述设计层功能函数模型与所述需求层功能函数模型的功能一致性进行精化验证;其中,所述需求层功能函数模型使用Isabelle元语言对所述操作系统的需求层的函数功能进行形式化描述。
3.根据权利要求2所述的设计层形式化验证方法,其特征在于,所述步骤104中,所述精化验证使用霍尔三元组形式化描述需要证明的功能一致性;其中,所述霍尔三元组的前置条件为设计层功能函数模型的状态与需求层功能函数模型的状态相同的等式,中间动作为函数功能,后置条件是设计层功能函数模型经过该动作操作后的单子状态与需求层功能函数模型经过该动作后的状态相同的等式。
4.根据权利要求3所述的设计层形式化验证方法,其特征在于,所述步骤104中,所述对所述设计层功能函数模型与所述需求层功能函数模型进行精化验证,包括:
对设计层功能函数模型的功能函数进行展开以进行验证描述;
使用wpsimp命令简化设计层功能函数的验证描述,以生成Isabelle元语言构造的高阶逻辑表达式;
对需求层功能函数模型的同一功能函数进行展开以进行验证描述;
调用辅助引理对所述霍尔三元组进行自动验证,以验证调用功能函数前的需求层与设计层的状态是否一致,以及调用功能函数后的设计层与需求层的状态是否一致。
5.根据权利要求3所述的设计层形式化验证方法,其特征在于,所述步骤102中,通过record命令对所述数据结构进行形式化描述,通过definition命令对所述状态进行形式化描述;所述步骤103中,通过definition命令构建所述函数功能。
6. 根据权利要求4所述的设计层形式化验证方法,其特征在于,所述步骤104中,通过apply ( simp add: 功能函数) 命令对设计层功能函数模型或需求层功能函数模型的功能函数进行展开以进行验证描述。
7.一种操作系统的设计层形式化验证系统,其特征在于,包括:
获取模块,配置为获取所述操作系统的设计层文档;其中,所述设计层文档包括所述操作系统的设计层的数据结构、状态和算法的描述;
形式化描述模块,配置为:使用Isabelle元语言对所述数据结构和所述状态进行形式化描述;以及基于经过形式化描述的所述数据结构和所述状态,使用状态单子对设计层的算法的函数功能进行形式化描述,以得到设计层功能函数模型;
精化验证模块,配置为获取所述操作系统的需求层功能函数模型,对所述设计层功能函数模型与所述操作系统的需求层功能函数模型进行精化验证。
8.一种电子设备,其特征在于,包括:存储器,用于存储计算机程序;处理器,与所述存储器数据耦合,用于在执行所述计算机程序时,实现如权利要求1-6任一项所述的设计层形式化验证方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-6任一项所述的设计层形式化验证方法。
CN202310024402.4A 2023-01-09 2023-01-09 一种设计层形式化验证方法及系统 Active CN115827494B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310024402.4A CN115827494B (zh) 2023-01-09 2023-01-09 一种设计层形式化验证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310024402.4A CN115827494B (zh) 2023-01-09 2023-01-09 一种设计层形式化验证方法及系统

Publications (2)

Publication Number Publication Date
CN115827494A true CN115827494A (zh) 2023-03-21
CN115827494B CN115827494B (zh) 2023-05-05

Family

ID=85520365

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310024402.4A Active CN115827494B (zh) 2023-01-09 2023-01-09 一种设计层形式化验证方法及系统

Country Status (1)

Country Link
CN (1) CN115827494B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708730A (zh) * 2016-11-22 2017-05-24 北京控制工程研究所 一种针对嵌入式实时操作系统形式化验证方法
CN109240907A (zh) * 2018-07-26 2019-01-18 华东师范大学 基于霍尔逻辑的嵌入式实时操作系统的自动化验证方法
AU2020102903A4 (en) * 2019-10-31 2020-12-17 East China Normal University A Formal Modeling And Verification Method For A Microkernel Operating System Inter-Process Communication Mechanism Based on the Event-B Method
CN113282492A (zh) * 2021-05-24 2021-08-20 湖南大学 一种操作系统内核形式化验证方法
CN113553246A (zh) * 2021-07-12 2021-10-26 华东师范大学 一种面向计算平台的系统评估装置
CN114500347A (zh) * 2022-04-18 2022-05-13 军事科学院系统工程研究院网络信息研究所 一种对安全互联协议进行形式化验证的方法和系统
CN115185812A (zh) * 2022-06-07 2022-10-14 北京控制工程研究所 一种嵌入式操作系统设计层形式化验证方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708730A (zh) * 2016-11-22 2017-05-24 北京控制工程研究所 一种针对嵌入式实时操作系统形式化验证方法
CN109240907A (zh) * 2018-07-26 2019-01-18 华东师范大学 基于霍尔逻辑的嵌入式实时操作系统的自动化验证方法
AU2020102903A4 (en) * 2019-10-31 2020-12-17 East China Normal University A Formal Modeling And Verification Method For A Microkernel Operating System Inter-Process Communication Mechanism Based on the Event-B Method
CN113282492A (zh) * 2021-05-24 2021-08-20 湖南大学 一种操作系统内核形式化验证方法
CN113553246A (zh) * 2021-07-12 2021-10-26 华东师范大学 一种面向计算平台的系统评估装置
CN114500347A (zh) * 2022-04-18 2022-05-13 军事科学院系统工程研究院网络信息研究所 一种对安全互联协议进行形式化验证的方法和系统
CN115185812A (zh) * 2022-06-07 2022-10-14 北京控制工程研究所 一种嵌入式操作系统设计层形式化验证方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GERWIN KLEIN等: "Comprehensive formal verification of an OS microkernel" *
钱振江;黄皓;宋方敏;: "VSOS-HAM:基于Isabelle/HOL的OS内核硬件抽象模型和形式化验证方法研究" *

Also Published As

Publication number Publication date
CN115827494B (zh) 2023-05-05

Similar Documents

Publication Publication Date Title
CN108376221B (zh) 一种基于aadl模型扩展的软件系统安全性验证与评估方法
Kang et al. A methodology for formal analysis and verification of EAST-ADL models
CN108664241B (zh) 一种将SysML模型进行仿真验证的方法
CN110109658B (zh) 一种基于形式化模型的ros代码生成器及代码生成方法
CN111752841A (zh) 单测模拟方法、装置、设备与计算机可读存储介质
Zhou et al. Formal component-based modeling and synthesis for PLC systems
CN113783721A (zh) 面向工业控制网络协议的可信性建模与验证方法
CN115827494A (zh) 一种设计层形式化验证方法及系统
CN103888460A (zh) 基于状态空间搜索的控制器局域网协议验证方法
CN111709138A (zh) 面向cps时空性质的混成aadl建模与模型转换方法
CN114238084A (zh) 基于SysML的嵌入式软件安全性分析方法及其分析系统
CN113987764A (zh) 一种基于sca域描述文件的仿真模型构建方法及系统
CN114692539A (zh) 一种soc芯片验证架构并行验证的实现方法
Chukharev et al. FbSAT: Automatic inference of minimal finite-state models of function blocks using SAT solver
Haupt et al. Near automatic translation of autonomie-based power train architectures for multi-physics simulations using high performance computing
Zhang et al. A method of automatic code generation based on AADL model
Shin et al. Automated test case generation for automotive embedded software testing using XMI-based UML model transformations
Durak et al. System entity structure and model base framework in model based engineering of simulations for technical systems
CN115712420B (zh) 一种基于复杂实时嵌入式系统的架构设计与架构转换方法
CN110414097A (zh) Ima系统资源配置验证方法和系统、计算机可读存储介质
Sivashankar et al. A modeling environment for production powertrain controller development
CN117369795B (zh) 用于无人机决策的行为树模型可达性分析方法及装置
Zhang et al. Automated test case generation for embedded software using extended interface automata
Munck et al. Test-driven modeling and development of cloud-enabled cyber-physical smart systems
Sen et al. Combining theorem proving and model checking in the safety-critical software development through translating Event-B to SMV

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant