[发明专利]一种多阶段程序分析的并行任务分配方法及装置在审
申请号: | 202011272405.2 | 申请日: | 2020-11-13 |
公开(公告)号: | CN112269648A | 公开(公告)日: | 2021-01-26 |
发明(设计)人: | 陈睿;江云松;肖志恒;王峥;贾春鹏;高栋栋;于婷婷;丁戈;朱玉钊 | 申请(专利权)人: | 北京轩宇信息技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 中国航天科技专利中心 11009 | 代理人: | 陈鹏 |
地址: | 100190 北京市海淀区科学院*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 阶段 程序 分析 并行 任务 分配 方法 装置 | ||
本发明公开了一种多阶段程序分析的并行任务分配方法及装置。所述方法包括:根据待分析代码中所有任务之间的依赖关系,构建所述待分析代码对应的任务关系图;获取所述待分析代码中需要运行的分析任务;根据所述任务关系图和所述分析任务,对所述分析任务进行阶段划分,得到阶段任务集合;所述阶段任务集合中包含至少一个可被并行执行的并行任务;根据并发运行任务数,运行所述阶段任务集合中的阶段任务,并获取任务运行结果。本发明能够较大程度的发挥硬件性能,缩短整体分析时间,且能够有效解决将所有检查器结果堆积到同一个结果文件中,检查结果较多时,结果文件过大,不便于读取的问题。
技术领域
本发明涉及代码分析技术领域,特别是一种多阶段程序分析的并行任务分配方法及装置。
背景技术
代码分析是保证软件代码正确性的重要方法。对现代大规模的复杂的软件系统(比如千万行代码规模的Linux操作系统)进行高精度的静态分析,分析精度的提高,往往意味着更长的分析时间。精度、效率和可扩展性相互制约,是静态分析技术在工业界应用的主要障碍。
在提升分析效率方面,人们做了大量的优化研究工作,比如单机
CPU并行、分布式以及GPU实现等。鉴于本发明应用的系统为单机环境,主要针对单机CPU并行情况进行了研究。目前已有的一些并行分析算法有Méndez-Lojo等人提出的一种基于约束图改写的并行指向分析算法,Rodriguez等人提出的一种基于参与者模型的并行数据流分析算法,这两种算法是针对某一类特定的静态分析问题进行特定的处理,不具有普遍性。Albarghouthi等人提出了一个使用map-reduce策略并行化自顶向下分析的通用框架,这种框架比较依赖内存,内存不足时,计算会受限。
对于使用多种类型检查器同时进行分析的情况,有些检查器可能会有些前置任务,比如全局变量分析的检查器在分析前,需要先进行程序构建,再进行函数调用关系计算,检查器的分析有一些前置的依赖条件,需要分多个阶段运行。如果每一个检查器都要等待其前置任务完成,且所有检查器都要顺序进行,那么必然存在项目完整分析效率低的问题。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供了一种多阶段程序分析的并行任务分配方法及装置。
为了解决上述技术问题,本发明实施例提供了一种多阶段程序分析的并行任务分配方法,包括:
根据待分析代码中所有任务之间的依赖关系,构建所述待分析代码对应的任务关系图;
获取所述待分析代码中需要运行的分析任务;
根据所述任务关系图和所述分析任务,对所述分析任务进行阶段划分,得到阶段任务集合;所述阶段任务集合中包含至少一个可被并行执行的并行任务;
根据并发运行任务数,运行所述阶段任务集合中的阶段任务,并获取任务运行结果。
可选地,所述根据待分析代码中所有任务之间的依赖关系,构建所述待分析代码对应的任务关系图,包括:
以所述所有任务作为图节点;
根据所述依赖关系将具有依赖关系的图节点相连,生成所述任务关系图。
可选地,所述根据所述任务关系图和所述分析任务,对所述分析任务进行阶段划分,得到阶段任务集合,包括:
获取所述分析任务在所述任务关系图中的目标图节点;
获取所述目标图节点中为父节点的第一图节点,并将所述第一图节点划分至阶段任务集合;
在所述目标图节点中删除所述第一图节点,并对剩余的目标图节点循环执行所述获取所述目标图节点中为父节点的第一图节点,并将所述第一图节点划分至阶段任务集合的步骤,直至所有的分析任务均已划分至阶段任务集合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京轩宇信息技术有限公司,未经北京轩宇信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011272405.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种散热器攻丝机械手
- 下一篇:一种光器件