[发明专利]基于多Agent分布式调度的并行符号执行系统有效
申请号: | 201610063538.6 | 申请日: | 2016-01-29 |
公开(公告)号: | CN105760219B | 公开(公告)日: | 2019-02-12 |
发明(设计)人: | 魏强;曹琰;武泽慧;柳晓龙;麻荣宽;曾杰 | 申请(专利权)人: | 中国人民解放军信息工程大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/38 |
代理公司: | 郑州大通专利商标代理有限公司 41111 | 代理人: | 陈大通 |
地址: | 450052 河*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 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)全部为空闲状态,则全部测试任务完成。
2.根据权利要求1所述的基于多Agent调度的并行符号执行系统,其特征在于:所述的执行迹生成单元(11)的具体方法包含以下步骤:
步骤X1、Agent(1111)接收任务分配模块(101)传来的输入样本,将自身节点状态置为“忙”;
步骤X2、启动测试任务,检测程序异常状态,记录程序指令流;
步骤X3、将记录的指令流转换成具有安全分析属性的中间语言形式,生成程序执行迹;
步骤X4、Agent(1111)将程序执行迹传入执行迹队列(105);
步骤X5、Agent(1111)将自身节点状态置为“闲”。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军信息工程大学,未经中国人民解放军信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610063538.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:云环境下资源调度方法及系统
- 下一篇:一种软件升级方法及终端设备