[发明专利]一种基于数值抽象的程序资源使用量自动分析方法有效
申请号: | 202010382006.5 | 申请日: | 2020-05-08 |
公开(公告)号: | CN111475420B | 公开(公告)日: | 2023-04-28 |
发明(设计)人: | 陈立前;范广生;陈涛清;王戟;尹帮虎;刘江潮;董威;毛晓光;李姗姗 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 周长清 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 数值 抽象 程序 资源 使用 自动 分析 方法 | ||
本发明公开了一种基于数值抽象的程序资源使用量自动分析方法,其包括:步骤S1:资源操作API的配置;步骤S2:代码自动插桩;步骤S3:资源引用变量指向分析:通过指向分析得到程序中每个资源引用变量指向的基地址集合及对应的资源大小;利用用于建模资源使用量的数值变量及其依赖关系,对插桩后的代码进行切片,自动剔除与资源操作无关代码,得到数值程序;步骤S4:基于数值抽象的数值程序分析;步骤S5:循环次数上界分析;步骤S6:数值程序分析结果到资源使用量的映射:将分析得到的数值程序分析结果映射到资源使用量的值范围。本发明具有原理简单、适用范围广、分析效率高、分析可靠性好等优点。
技术领域
本发明主要涉及到计算机系统中软件可信性保障技术领域,特指一种基于数值抽象的程序资源使用量自动分析方法。
背景技术
在航空航天等为代表的安全关键嵌入式系统中,受系统环境、硬件资源等因素制约,程序能消耗的资源(如堆内存、栈内存、句柄等资源)往往是受限的。当程序所申请的资源超过计算机可以分配的空闲资源时,就会导致程序的运行效率降低,甚至可能引发计算机资源耗尽而发生系统故障。因此,在程序运行前对程序进行分析,保守地估计程序运行过程中可能消耗的某种资源的最大量(峰值),辅助余量设计,对于保障整个系统的正常运行具有重要意义。程序在运行过程中对资源的使用量随运行状态发生改变。程序资源使用量分析方法的目的是,通过静态的方法事先估计程序在不同程序点处需要占用的资源数量,尤其是整个程序峰值时的资源消耗量的上界。现有的资源使用量上界分析方法主要考虑堆内存的使用量,主要包括以下4个步骤:
S1:扩展符号执行的内存模型,使用增强的符号化内存模型来建模程序当前状态下堆内存使用量和历史消耗峰值(即:到目前为止的最大使用量)。
S2:基于S1的内存模型,对程序开展符号执行。符号执行过程中,对于程序中的循环,采用循环展开方式处理循环。
S3:针对S2符号执行过程产生的每条路径,采用约束求解技术求得每条路径上堆内存的峰值消耗量。
S4:根据S3所得每条路径上堆内存的峰值消耗量的结果,求得整个程序峰值时堆内存使用量的上界。
上述现有方式存在以下的几点不足:
1.循环处理能力差:采用符号执行方法进行程序资源上界分析时,需要对循环展开。如果循环次数难以事先确定或者循环次数为符号值,则无法知道要具体展开多少次。分析得到的结果也不是可靠的资源使用上界。
2.仅支持特定资源类型:目前已有程序资源上界分析方法主要考虑堆内存,但是实际程序中还会消耗很多其他类型资源,如文件句柄、网络套接字等。
3、分析效率低:现有的分析技术采用路径敏感的符号执行方法,需要针对每条符号路径采用约束求解技术计算资源使用情况。而符号执行存在路径爆炸问题且约束求解代价较大,因此基于符号执行的分析效率较低。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种原理简单、适用范围广、分析效率高、分析可靠性好的基于数值抽象的程序资源使用量自动分析方法。
为解决上述技术问题,本发明采用以下技术方案:
一种基于数值抽象的程序资源使用量自动分析方法,其包括:
步骤S1:资源操作API的配置;
步骤S2:代码自动插桩:针对待分析程序的源代码,采用模式匹配方法识别配置的资源操作API所在程序点,引入辅助的整型数值变量对资源使用量进行建模,并根据API的类型自动插桩用于对资源使用情况进行建模的数值语句,获得资源感知程序;
步骤S3:资源引用变量指向分析:通过指向分析得到程序中每个资源相关引用变量指向的基地址集合及对应的资源大小;利用数值变量及其依赖关系,对插桩后的代码进行切片,自动剔除与资源操作无关代码,得到数值程序;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010382006.5/2.html,转载请声明来源钻瓜专利网。