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

一种实时系统的循环边界内向分析方法技术方案

技术编号:10965404 阅读:96 留言:0更新日期:2015-01-28 17:40
本发明专利技术提出了一种针对实时系统的循环边界内向分析方法,该方法基于修改符号执行的路径搜索方式,使得执行引擎能够快速定位到系统中各循环的最大迭代路径,并以此为基础高效地获得系统中各循环边界的估计值。本方法所求得的循环边界估计值具有如下特征:系统能保证每一个循环边界估计值都具有可达性,即一定存在一个系统输入,使得该输入下的系统运行达到边界估计值所获得的循环迭代次数。作为传统循环边界分析方法的必要补充技术,本发明专利技术所提出的循环边界内向分析方法可用于估算系统至少能够达到的最大循环迭代次数,从而使得用户能够更为完整有效的分析实时系统的循环边界,提高系统质量。

【技术实现步骤摘要】
一种实时系统的循环边界内向分析方法
本专利技术涉及一种动静态结合的实时系统的循环边界分析方法,主要利用目标制导的符号执行技术来跟踪循环边界的执行条件,从而实现从内向分析的角度来估算实时系统的循环边界,属于计算机技术、实时系统分析交叉技术应用领域。
技术介绍
循环边界是影响实时系统实时性保障的重要因素。它是指当前系统的任意一次执行,会使循环可能达到的最大迭代次数。由于问题本身的不可判定性,对循环边界的分析不可避免地会引入误差。按照所引入的误差使得分析的结果偏大还是偏小,可以将循环边界分析方法划分为外向分析和内向分析两类。已有的循环边界分析方法均为外向分析。该类分析出于保障实时系统安全性的角度考虑,所得的分析结果是实际系统中循环边界的高估值。这使得外向分析的结果,可以直接用于估算实时系统最坏情况下的执行时间,从而为设计实时系统提供参考依据。在实际应用中,循环边界外向分析方法的所得到的高估值有时会偏离实际边界值很远,从而造成系统硬件资源的浪费,本专利技术给出的内向分析方法旨在为解决这一问题提供条件。作为一种必要的补充技术,循环边界内向分析可用于估算循环至少能够达到的最大迭代次数。用户结合传统的外向分析方法和本专利技术提出的内向分析方法,可以明确获得循环边界的实际范围与误差情况,因此,内向分析方法的出现使得循环边界的分析技术更为完整有效。符号执行技术是一种利用计算机以符号推导的方式来模拟系统执行的应用技术,它最早由JamesKing于1976年应用于系统测试领域。该技术的核心思想在于,首先将系统输入的具体值用可以代表任意值的“符号”代替,并以此构建符号状态在特定的平台上进行模拟执行;然后通过收集系统各路径上关于符号值的约束条件,来获得各执行路径与系统输入符号的对应关系;最终通过求解约束条件来获得测试用例。由于传统符号执行方法的目的在于提高测试的覆盖率,因而其主要的关注点在于如何使符号执行尽可能地进入系统的各条不同路径上,而循环边界分析仅仅关注系统中的循环部分。针对这一问题,本专利技术对传统的符号执行技术进行了改进,使其符号推导的执行过程仅针对循环的最大迭代路径,从而能高效地完成循环边界的内向分析。
技术实现思路
技术问题:本专利技术的目的是提出一种实时系统循环边界的内向分析方法,该方法作为传统循环边界外向分析方法的必要补充,能保证所求得的循环边界估计值一定可达。技术方案:本专利技术基于符号执行技术提出了一种循环边界的内向分析方法。该方法结合静态分析技术和动态符号执行方法,且在符号执行过程中改变搜索方式而使得执行引擎能够快速定位到各循环的最大迭代路径,并以此为基础高效地获得循环边界的估计值,本方法包含的具体步骤为:1-1)、使用静态分析方法定位系统中的循环块,并将所定位到的循环块信息缓存,以便后续的符号执行进行进一步处理,在实现循环定位的过程中,缓存各循环块的起始位置点、入口数、出口数、各入口和出口的位置点、循环条件的基本信息,以便后续步骤使用;1-2)、将当前待分析的实时系统编译到符号执行平台,以获得待分析系统在符号执行平台上的字节码,直接使用已有的符号化平台的配套编译工具,所生成的执行码将用于步骤1-3)的符号执行;1-3)、在针对循环分析定制的目标制导引擎上,对步骤1-2)所生成的字节码完成符号执行,并在执行过程中比对由步骤1-1)所保存的循环块信息,针对特定路径进行符号推导,从而迅速获得各循环块边界的内向分析结果。所述步骤1-3)中的符号执行方法针对循环边界分析的要求改变了搜索方式,从而使得执行引擎能够快速定位到系统中各循环的最大迭代路径;该方法具有两个执行模式——模式a和模式b,模式a的主要作用在于建立状态池,以获得系统中各循环的入口符号状态,而模式b的作用在于为已经具备条件的循环块计算内向边界;具体如下:2-1)将引擎的初始模式置为模式a,构建系统的初始符号状态;在初始的符号状态中,系统输入由具体变量值改成了可以代表任意值的“符号”;2-2)以模式a对系统执行码进行符号执行,并在执行过程中比对步骤1-1)缓存的循环块信息,当发现当前的符号状态到达循环入口时,将该状态加入循环内部状态集S留待模式b处理,而选择另一个符号状态执行;如果没有其它符号状态,则切换到模式b进行循环块边界分析;2-3)切换到模式b以后,引擎会从循环内部状态集S中任取一个状态开始,具体分析每一个循环块的内向边界;这一模式的符号执行被约束在程序的各个循环块内,通过一系列符号制导求解过程,最终获得各个循环块的内向边界以及各循环块的出口状态;2-4)当步骤2-3)完成时,引擎会得到一个完整循环块的内向边界值,以及该循环块的出口符号状态,这时引擎将切换回到模式a,以循环块出口状态开始继续寻找新的循环块,直到当前系统的所有符号状态都运行完成,即步骤2-2)中循环内部状态集S为空集,则求解各记录的符号状态约束,获得能覆盖对应路径的输入值等最终结果。步骤2-3)切换到具体模式b以后,引擎将切换到一个循环块内的符号状态上执行;在该模式下,每一个符号状态将会维护一个信息栈I,用以存放多层嵌套循环的信息;当遇到嵌套循环时,外层循环的信息被压栈到I,并开始分析内层循环的信息;当内层循环分析完成后,外层循环的信息会从I出栈,从而可以继续进行外层循环的分析;在执行步骤2-3)时,平台会为当前所分析的循环块分配两个符号状态集——S和S’:状态集S用于缓存当前在循环内部等待执行的符号状态,而状态集S’用于缓存已经执行到当前循环出口的符号状态;在刚切换到模式b时,由于仅有一个符号状态在当前循环块内执行,故而S中仅有该符号状态,而S’初始时为空集;符号执行平台每次从S中取出一个符号状态并往前执行一步,并处理以下四种不同的具体情形:当遇到分支时,会产生新的状态,新状态与当前状态会拥有同样的信息栈I,并且会被加入到状态集S中;当进入内层的嵌套循环时,S与S’会被压入信息栈I中,平台为当前内层循环重建新的S与S’,S的初值为当前状态,S’的初值为空集;当到达诸如程序中的break语句所标识的循环额外出口分支时,平台会求解当前符号状态内的符号信息,并将解得继续在循环内执行分支上的符号状态与沿循环出口运行的符号状态,将其分别加入S与S’,并进行循环出口处理,统计循环的内向边界值,并判断集合S是否为空集与信息栈I是否已到达栈底,如仍未到达栈底则表示当前循环为嵌套循环的内层循环,将执行信息栈I的出栈操作以便继续进行嵌套循环的外层循环分析;当符号执行到达循环条件时,说明当前的循环经过了完整的一轮迭代执行,需将符号状态上所标注的迭代次数加1,将继续在循环内运行的符号状态加入S,离开循环的状态加入S’,并进行循环出口处理,以判断当前循环是否完成,并统计当前所在循环的内向边界值。有益效果:本专利技术所述的实时系统循环边界的内向分析方法,从保障可达性的角度来分析实时系统的循环边界,它将实时系统代码直接编译到定制的符号执行引擎上,通过针对循环块路径制导的符号执行来自动高效地完成循环边界的分析。由于符号执行中的每一个状态都能解得一个具体的系统输入来覆盖该状态的执行路径,且解得的分析结果必然对应一个符号状态,故而所得的循环边界估计一定能够被实际的系统执行达到。具体来说,本专利技术所述的方法具有如下的有益效果:1.)本文档来自技高网
...
一种实时系统的循环边界内向分析方法

【技术保护点】
一种实时系统的循环边界内向分析方法,其特征在于该方法结合静态分析技术和动态符号执行方法,且在符号执行过程中改变搜索方式而使得执行引擎能够快速定位到各循环的最大迭代路径,并以此为基础高效地获得循环边界的估计值,本方法包含的具体步骤为:1‑1)、使用静态分析方法定位系统中的循环块,并将所定位到的循环块信息缓存,以便后续的符号执行进行进一步处理,在实现循环定位的过程中,缓存各循环块的起始位置点、入口数、出口数、各入口和出口的位置点、循环条件的基本信息,以便后续步骤使用;1‑2)、将当前待分析的实时系统编译到符号执行平台,以获得待分析系统在符号执行平台上的字节码,直接使用已有的符号化平台的配套编译工具,所生成的执行码将用于步骤1‑3)的符号执行;1‑3)、在针对循环分析定制的目标制导引擎上,对步骤1‑2)所生成的字节码完成符号执行,并在执行过程中比对由步骤1‑1)所保存的循环块信息,针对特定路径进行符号推导,从而迅速获得各循环块边界的内向分析结果。

【技术特征摘要】
1.一种实时系统的循环边界内向分析方法,其特征在于该方法结合静态分析技术和动态符号执行方法,且在符号执行过程中改变搜索方式而使得执行引擎能够快速定位到各循环的最大迭代路径,并以此为基础高效地获得循环边界的估计值,本方法包含的具体步骤为:1-1)、使用静态分析方法定位系统中的循环块,并将所定位到的循环块信息缓存,以便后续的符号执行进行进一步处理,在实现循环定位的过程中,缓存各循环块的起始位置点、入口数、出口数、各入口和出口的位置点、循环条件的基本信息,以便后续步骤使用;1-2)、将当前待分析的实时系统编译到符号执行平台,以获得待分析系统在符号执行平台上的字节码,直接使用已有的符号化平台的配套编译工具,所生成的执行码将用于步骤1-3)的符号执行;1-3)、在针对循环分析定制的目标制导引擎上,对步骤1-2)所生成的字节码完成符号执行,并在执行过程中比对由步骤1-1)所保存的循环块信息,针对特定路径进行符号推导,从而迅速获得各循环块边界的内向分析结果。2.根据权利要求1所述的一种实时系统的循环边界内向分析方法,其特征在于所述步骤1-3)中的符号执行方法针对循环边界分析的要求改变了搜索方式,从而使得执行引擎能够快速定位到系统中各循环的最大迭代路径;该方法具有两个执行模式——模式a和模式b,模式a的主要作用在于建立状态池,以获得系统中各循环的入口符号状态,而模式b的作用在于为已经具备条件的循环块计算内向边界;具体如下:2-1)将引擎的初始模式置为模式a,构建系统的初始符号状态;在初始的符号状态中,系统输入由具体变量值改成了可以代表任意值的“符号”;2-2)以模式a对系统执行码进行符号执行,并在执行过程中比对步骤1-1)缓存的循环块信息,当发现当前的符号状态到达循环入口时,将该状态加入循环内部状态集S留待模式b处理,而选择另一个符号状态执行;如果没有其它符号状态,则切换到模式b进行循环块边界分析;2-3)切换到模式b以后,引擎会从循环内部状态集S中任取一个状态开始,具体分析每一个循环块的内向边界;这一模式的符号执行被约束在程序的各个循环块内,通过一系列符号制导求解过程,最终获得各个循环块的内向边界以及各循环块的出口状态;2-4)当步骤2-3)完...

【专利技术属性】
技术研发人员:汤恩义鲍铁匀李宣东王林章陈鑫潘敏学
申请(专利权)人:南京大学
类型:发明
国别省市:江苏;32

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

1