[发明专利]基于多Agent分布式调度的并行符号执行系统有效
申请号: | 201610063538.6 | 申请日: | 2016-01-29 |
公开(公告)号: | CN105760219B | 公开(公告)日: | 2019-02-12 |
发明(设计)人: | 魏强;曹琰;武泽慧;柳晓龙;麻荣宽;曾杰 | 申请(专利权)人: | 中国人民解放军信息工程大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/38 |
代理公司: | 郑州大通专利商标代理有限公司 41111 | 代理人: | 陈大通 |
地址: | 450052 河*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于多Agent调度的并行符号执行系统,包括:分布式调度与监控单元,用于对执行迹生成单元、符号执行单元和约束求解单元实现流水线并行调度,使得系统并行运行程度提高,负载均衡;执行迹生成单元,用于将具体输入驱动被测程序实际执行,检测是否产生异常,同时记录程序执行指令序列,通过分析转换生成中间语言表示形式的程序执行迹;符号执行单元,用于对程序执行迹进行符号化模拟执行,收集路径分支的约束条件,生成相应的约束表达式;约束求解单元,用于对约束表达式进行深度优先取反求解,生成新的输入样本,同时对取反的表达式进行标记,避免重复路径分析。本发明实现的任务调度策略可以实现流水并行,防止仅以程序执行子树为调度负载带来的负载不均衡问题。 | ||
搜索关键词: | 基于 agent 分布式 调度 并行 符号 执行 系统 | ||
【主权项】:
1.一种基于多Agent调度的并行符号执行系统,包括分布式调度与监控单元(10)、执行迹生成单元(11)、符号执行单元(12)和约束求解单元(13);其特征在于:所述的分布式调度与监控单元(10)用于任务的分配调度,监控执行迹生成单元(11)、符号执行单元(12)和约束求解单元(13)的节点空闲状态,以维持负载均衡;所述的分布式调度与监控单元(10)包括:任务分配模块(101)、节点状态监控模块(102)、输入样本队列(103)、约束表达式队列(104)和执行迹队列(105);其中,任务分配模块(101)用于将输入样本队列(103)、约束表达式队列(104)和执行迹队列(105)中的工作任务分配到执行迹生成单元(11)、符号执行单元(12)和约束求解单元(13)3个工作单元进行执行,并从该3个工作单元收集产生的产品放入相应的3个任务队列;节点状态监控模块(102)用于监视探测执行迹生成单元(11)、符号执行单元(12)和约束求解单元(13)中工作节点的闲/忙状态;输入样本队列(103)用于存储约束求解单元(13)生成的测试样本;约束表达式队列(104)用于存储符号执行单元(12)生成的约束表达式;执行迹队列(105)用于存储执行迹生成单元(11)生成的中间表示形式的程序执行指令流记录;所述的执行迹生成单元(11)包括多个执行迹生成节点(111),每个节点结构功能完全相同,可以独立执行相关功能,且都包括1个Agent(1111)用于与分布式调度与监控单元(10)通信;所述的执行迹生成节点(111)用于将具体输入驱动被测程序实际执行,检测是否产生异常,同时记录程序执行指令序列,通过分析转换生成中间语言表示形式的程序执行迹;所述的符号执行单元(12)包括多个符号执行节点(121),每个节点结构功能完全相同,可以独立执行相关功能,且都包括1个Agent(1211)用于与分布式调度与监控单元(10)通信;所述的符号执行节点(121)用于对程序执行迹进行符号化模拟执行,收集路径分支的约束条件,生成相应的约束表达式;所述的约束求解单元(13)包括多个约束求解节点(131),每个节点结构功能完全相同,可以独立执行相关功能,且都包括1个Agent(1311)用于与分布式调度与监控单元(10)通信;所述的约束求解节点(131)用于对约束表达式进行深度优先取反求解,生成新的输入样本;同时,对取反的表达式进行标记,传回分布式调度与监控单元(10)中的约束表达式队列(104);所述的分布式调度与监控单元(10)的具体工作方法包含以下步骤:步骤一、节点状态监控模块(102)探测各个工作节点的闲/忙状态,如果存在执行迹生成节点(111)处于空闲,转入步骤二;如果存在符号执行节点(121)处于空闲,转入步骤三;如果存在约束求解节点(131)处于空闲,转入步骤四;如果不存在空闲状态节点,继续等待;步骤二、任务分配模块(101)检查输入样本队列(103)是否为空,如果为空,继续等待;否则,从输入样本队列(103)取出一个输入样本传给Agent(1111);步骤三、任务分配模块(101)检查执行迹队列(105)是否为空,如果为空,继续等待;否则,从执行迹队列(105)取出一个执行迹传给Agent(1211);步骤四、任务分配模块(101)检查约束表达式队列(104)是否为空,如果为空,继续等待;否则,从约束表达式队列(104)取出一个约束求解表达式传给Agent(1311);步骤五、如果输入样本队列(103)、约束表达式队列(104)和执行迹队列(105)均为空,并且执行迹生成节点(111)、符号执行节点(121)和约束求解节点(131)全部为空闲状态,则全部测试任务完成。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军信息工程大学,未经中国人民解放军信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610063538.6/,转载请声明来源钻瓜专利网。
- 上一篇:云环境下资源调度方法及系统
- 下一篇:一种软件升级方法及终端设备