当前位置: 首页 > 专利查询>浙江大学专利>正文

基于依赖保证机制的操作系统内存管理机制验证方法技术方案

技术编号:34886379 阅读:31 留言:0更新日期:2022-09-10 13:44
本发明专利技术公开了一种基于依赖保证机制的操作系统内存管理机制验证方法。该方法将操作系统建模为一个并发事件模型,并利用并行程序验证框架提供的程序语义和记号建模内存申请和释放函数。设计内存安全并将其转化为程序验证框架语义下的安全规约,并依据安全规约,设计相应的验证条件,并利用行程序验证框架的依赖

【技术实现步骤摘要】
基于依赖保证机制的操作系统内存管理机制验证方法


[0001]本专利技术属于形式化验证领域,涉及一种基于依赖

保证机制的操作系统内存管理机制验证方法。

技术介绍

[0002]操作系统(OS)是关键系统的基本组件。因此,系统的正确性和可靠性在很大程度上取决于系统的底层操作系统。内存管理是操作系统的基本功能,它提供了一种方法,可以根据程序的请求动态地将部分内存分配给程序,并在没有内存的情况下释放内存以供重用。由于程序变量和数据存储在分配的内存中,因此不正确的内存管理规范和实现可能导致系统崩溃或对整个系统的可利用攻击。
[0003]seL4是第一个被验证的可以实际应用的通用操作系统内核,seL4首先在Haskeell中实现内核原型,然后使用Isabelle定理证明器形成经由形式化验证的执行规范,通过建立执行规范和C实现代码之间的精华关系保证实现的正确性。seL4内核包含8700行C代码和600行汇编代码,使用超过200000行Isabelle代码对其正确性进行验证。
[0004]尽管seL4对其内存管理机制进行了验证,但存在以下两点缺陷:(1)只在串行操作系统上进行验证,没有考虑操作系统的并行性。(2)验证的内存管理系统比较简单,只考虑了内存虚拟映射,没有考虑动态地分配和释放内存块,也没有考虑空闲内存链表等复杂的数据结构。
[0005]依赖

保证验证框架是一种常用的并行程序验证框架。通过对Hoare逻辑的扩展,增加了依赖条件和保证条件分别记录环境和线程本身对系统状态造成的影响。首先对单独的线程进行验证。再通过检查不同线程之间的依赖

保证条件是否相容检查独立线程验证结果的可组合性,从而对整个并行系统进行验证。
[0006]传统的基于依赖

保证的验证框架难以直接应用于抢占式实时操作系统的验证,存在以下两点困难:(1)没有提供一种直接的方法针对抢占式实时操作系统验证时序上的安全性质。传统的基于依赖保证的验证框架只关注命令式程序,很难在依赖和保证关系中捕获与可能无限序列的事件处理程序的交互,以及事件处理程序的输入参数。(2)依赖

保证必须针对每个变量状态是否更新进行检查,即使其它进程的行为很明显不会对该变量造成影响。因此,有必要扩展现有的依赖

保证框架,使其适应抢占式实时操作系统并行、无限相应服务的特点。同时,需要针对复杂的并行内存管理机制进行合理的建模并提取合适的安全规约,从而实现对操作系统内存管理机制的形式化验证。

技术实现思路

[0007]本专利技术的目的在于针对现有技术的不足,提供一种基于依赖保证机制的操作系统内存管理机制验证方法。
[0008]本专利技术的目的是通过以下技术方案实现的:一种基于依赖保证机制的操作系统内存管理机制验证方法,该方法包含以下步骤:
[0009](1)操作系统语义设计:将实时操作系统建模为内存管理模型,所述内存管理模型采用并发事件模型,所述内存管理模型中包含一个调度事件系统和若干线程事件系统,还包含针对实时操作系统通用的系统安全规约和依赖保证条件;
[0010](2)内存管理规约建模:利用并行程序验证框架提供的程序语义和记号,对操作系统内存管理机制的系统初始化状态、系统运行状态(例如内存组、当前执行线程、各线程私有变量等)以及内存申请和内存释放函数进行建模;
[0011](3)设计安全规约:提取与操作系统内存安全高度相关的性质,并结合内存管理机制和内存组数据结构,使用并行程序验证框架提供的语义接口将安全性质转化为形式化的内存安全规约;
[0012](4)设计验证条件:根据步骤(1)建立的内存管理模型和系统安全规约,以及步骤(3)设计的内存安全规约,设计每个事件系统的依赖、保证条件;依据操作系统内存管理模块的任务代码、步骤(1)建立的系统安全规约以及步骤(3)设计的内存安全规约,设计每个事件系统的前置、后置条件;
[0013](5)验证内存管理模型:编写验证单独事件系统符合依赖、保证条件和前置、后置条件的证明脚本,并通过交互式定理证明器检验所述证明脚本的正确性,从而对单独事件系统的正确性进行形式化验证;利用并行程序验证框架提供的事件验证接口检验不同事件系统之间的依赖、保证条件和前置、后置条件是否相容;利用并行程序验证框架提供的事件系统验证接口对内存管理模型进行形式化验证。
[0014]进一步地,传统的基于依赖保证的验证框架只关注命令式程序,很难在依赖和保证关系中捕获与可能无限序列的事件系统的交互,以及事件系统的输入参数。并发事件模型,其由一组定义准确的输入事件系统组成,并发事件模型通过对每个事件系统执行关联的处理程序对这些事件系统进行处理。在并发环境中,每个事件系统的处理程序都可以与其他事件系统的处理程序进行交互,例如抢占式系统中的硬件中断。
[0015]进一步地,所述步骤(1)中,构建的内存管理模型,包含一个高度抽象的调度事件系统进行事件调度和线程控制,可以支持其它操作系统的建模。
[0016]进一步地,所述步骤(3)中,需要提取保障内存管理机制安全可靠运行强相关的安全性质,包括内存泄露、内存块重叠、空闲内存块链表定义错误、内存池数据结构错误,并将这些安全性质转化为形式化的内存安全规约,并使用并行程序验证框架提供的语义进行表示。
[0017]进一步地,所述步骤(4)中,基于设计的前置、后置条件,进行循环不变量设计,使得前置、后置条件以及循环不变量与事件系统相容。
[0018]进一步地,所述并行程序验证框架采用PiCore和HOL

Hoare_Parallel,所述交互式定理证明器采用Isabelle。
[0019]本专利技术的有益效果是:本专利技术提出的基于依赖保证机制的操作系统内存管理机制验证方法,确保内存管理系统不存在内存泄露、内存块重叠、空闲内存块链表定义错误、内存池数据结构错误问题,增加了操作系统运行的可靠性。
附图说明
[0020]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所
需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0021]图1是本专利技术一示例性实施例提供的并发事件系统图。
[0022]图2是本专利技术一示例性实施例提供的方法实现框图。
[0023]图3是本专利技术一示例性实施例提供的状态建模图。
具体实施方式
[0024]为了更好的理解本申请的技术方案,下面结合附图对本申请实施例进行详细描述。
[0025]应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0026]在本申请实施例中使用的术语是本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于依赖保证机制的操作系统内存管理机制验证方法,其特征在于,包含以下步骤:(1)操作系统语义设计:将实时操作系统建模为内存管理模型,所述内存管理模型采用并发事件模型,所述内存管理模型中包含一个调度事件系统和若干线程事件系统,还包含针对实时操作系统通用的系统安全规约和依赖保证条件;(2)内存管理规约建模:利用并行程序验证框架提供的程序语义和记号,对操作系统内存管理机制的系统初始化状态、系统运行状态以及内存申请和内存释放函数进行建模;(3)设计安全规约:提取与操作系统内存安全高度相关的性质,并结合内存管理机制和内存组数据结构,使用并行程序验证框架提供的语义接口将安全性质转化为形式化的内存安全规约;(4)设计验证条件:根据步骤(1)建立的内存管理模型和系统安全规约,以及步骤(3)设计的内存安全规约,设计每个事件系统的依赖、保证条件;依据操作系统内存管理模块的任务代码、步骤(1)建立的系统安全规约以及步骤(3)设计的内存安全规约,设计每个事件系统的前置、后置条件;(5)验证内存管理模型:编写验证单独事件系统符合依赖、保证条件和前置、后置条件的证明脚本,并通过交互式定理证明器检验所述证明脚本的正确性,从而对单独事件系统的正确性进行形式化验证;利用并行程序验证框架提供的事件验证接口检验不同事件系统之间的依赖、保证条件和前置、后置条件是否相容;利用并行程序验证框架提供的事件系统验证接口对内存管理模型进行形式化验证。2.根据权利要求1所述的...

【专利技术属性】
技术研发人员:王竟亦孙欢王文海刘艾明
申请(专利权)人:浙江大学
类型:发明
国别省市:

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

1