CN105760219B - 基于多Agent分布式调度的并行符号执行系统 - Google Patents
基于多Agent分布式调度的并行符号执行系统 Download PDFInfo
- Publication number
- CN105760219B CN105760219B CN201610063538.6A CN201610063538A CN105760219B CN 105760219 B CN105760219 B CN 105760219B CN 201610063538 A CN201610063538 A CN 201610063538A CN 105760219 B CN105760219 B CN 105760219B
- Authority
- CN
- China
- Prior art keywords
- node
- mark
- constraint
- queue
- expression formula
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012544 monitoring process Methods 0.000 claims abstract description 47
- 238000004458 analytical method Methods 0.000 claims abstract description 46
- 238000000034 method Methods 0.000 claims abstract description 16
- 238000004088 simulation Methods 0.000 claims abstract description 7
- 238000012360 testing method Methods 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 12
- 238000005314 correlation function Methods 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 4
- 238000000151 deposition Methods 0.000 claims 1
- 239000003795 chemical substances by application Substances 0.000 abstract 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004880 explosion Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 240000008042 Zea mays Species 0.000 description 1
- 235000005824 Zea mays ssp. parviglumis Nutrition 0.000 description 1
- 235000002017 Zea mays subsp mays Nutrition 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 235000005822 corn Nutrition 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于多Agent调度的并行符号执行系统,包括:分布式调度与监控单元,用于对执行迹生成单元、符号执行单元和约束求解单元实现流水线并行调度,使得系统并行运行程度提高,负载均衡;执行迹生成单元,用于将具体输入驱动被测程序实际执行,检测是否产生异常,同时记录程序执行指令序列,通过分析转换生成中间语言表示形式的程序执行迹;符号执行单元,用于对程序执行迹进行符号化模拟执行,收集路径分支的约束条件,生成相应的约束表达式;约束求解单元,用于对约束表达式进行深度优先取反求解,生成新的输入样本,同时对取反的表达式进行标记,避免重复路径分析。本发明实现的任务调度策略可以实现流水并行,防止仅以程序执行子树为调度负载带来的负载不均衡问题。
Description
技术领域
本发明是软件脆弱性并行检测系统,属于软件工程技术领域,具体的涉及一种基于多Agent调度的并行符号执行系统。
背景技术
并行符号执行技术的出现,是为了缓解符号执行存在的路径空间爆炸问题。符号执行有可能成为解决软件自动化测试问题的核心方法。但是,随着人们对软件功能应用的需求不断提高,单个软件的规模及其复杂性也随之持续扩张。由于软件分支数目和循环次数巨大,存在着指数级增长的执行路径,导致符号执行在实际应用中会遇到潜在的路径爆炸问题,这已成为符号执行应用的瓶颈。为了有效缓解符号执行中路径空间爆炸的问题,可以利用计算能力更高的硬件体系架构提高运算能力,比如分布式多处理器、多核、众核、云计算等,这就需要传统符号执行具有并行执行能力。
并行符号执行技术需要依赖分布式硬件平台实现,分布式任务调度策略和任务分解方式直接影响并行效率。已有的并行符号执行方式是每个分布式节点具有相同的符号执行引擎和约束求解器,即节点间同构,完成完全相同的功能,只是将程序执行子树作为负载分配到不同的工作节点,实现并行符号执行任务。这种方式结构、通信实现简单,但是由于程序执行子树形态未知,导致负载分配很不均衡,影响并行效率。
发明内容
本发明针对目前基于并行符号执行测试调度策略存在由于程序执行子树形态未知,导致负载分配很不均衡,影响并行效率的问题,提出一种基于多Agent调度的并行符号执行系统。
本发明的技术方案是:一种基于多Agent调度的并行符号执行系统,包括分布式调度与监控单元(10)、执行迹生成单元(11)、符号执行单元(12)和约束求解单元(13);所述的分布式调度与监控单元(10)用于任务的分配调度,监控执行迹生成单元(11)、符号执行单元(12)和约束求解单元(13)的节点空闲状态,以维持负载均衡。
所述的执行迹生成单元(11)包括多个执行迹生成节点(111),每个节点结构功能完全相同,可以独立执行相关功能,且都包括1个Agent(1111)用于与分布式调度与监控单元(10)通信。
所述的符号执行单元(12)包括多个符号执行节点(121),每个节点结构功能完全相同,可以独立执行相关功能,且都包括1个Agent(1211)用于与分布式调度与监控单元(10)通信。
所述的约束求解单元(13)包括多个约束求解节点(131),每个节点结构功能完全相同,可以独立执行相关功能,且都包括1个Agent(1311)用于与分布式调度与监控单元(10)通信。
所述的基于多Agent调度的并行符号执行系统所述的分布式调度与监控单元(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)生成的中间表示形式的程序执行指令流记录。
所述的基于多Agent调度的并行符号执行系统,所述的执行迹生成节点(111)用于将具体输入驱动被测程序实际执行,检测是否产生异常,同时记录程序执行指令序列,通过分析转换生成中间语言表示形式的程序执行迹。
所述的基于多Agent调度的并行符号执行系统,所述的符号执行节点(121)用于对程序执行迹进行符号化模拟执行,收集路径分支的约束条件,生成相应的约束表达式。
所述的基于多Agent调度的并行符号执行系统,所述的约束求解节点(131)用于对约束表达式进行深度优先取反求解,生成新的输入样本。同时,对取反的表达式进行标记,传回分布式调度与监控单元(10)中的约束表达式队列(104)。
所述的基于多Agent调度的并行符号执行系统,所述的分布式调度与监控单元(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)全部为空闲状态,则全部测试任务完成。
所述的基于多Agent调度的并行符号执行系统,所述的执行迹生成单元(11)的具体方法包含以下步骤:
步骤X1、Agent(1111)接收任务分配模块(101)传来的输入样本,将自身节点状态置为“忙”;
步骤X2、启动测试任务,检测程序异常状态,记录程序指令流;
步骤X3、将记录的指令流转换成具有安全分析属性的中间语言形式,生成程序执行迹;
步骤X4、Agent(1111)将程序执行迹传入执行迹队列(105);
步骤X5、Agent(1111)将自身节点状态置为“闲”。
所述的基于多Agent调度的并行符号执行系统,所述的符号执行单元(12)的具体方法包含以下步骤:
步骤Y1、Agent(1211)接收任务分配模块(101)传来的程序执行迹,将自身节点状态置为“忙”;
步骤Y2、对执行迹进行符号化模拟执行,收集路径分支约束条件,构建约束表达式;
步骤Y3、Agent(1211)将约束表达式传入约束表达式队列(104);
步骤Y4、Agent(1211)将自身节点状态置为“闲”。
所述的基于多Agent调度的并行符号执行系统,所述的约束求解单元(13)的具体方法包含以下步骤:
步骤Z1、Agent(1311)接收任务分配模块(101)传来的输入样本,将自身节点状态置为“忙”;
步骤Z2、按照深度优先原则,选取约束条件进行取反,对约束求解表达式进行求解,生成新的输入样本;
步骤Z3、将取反的约束条件标记后,将新的约束表达式传入约束表达式队列(104);
步骤Z4、将新生成的输入样本传入输入样本队列(103);
步骤Z5、Agent(1311)将自身节点状态置为“闲”。
本发明的有益效果是:1、本发明基于多Agent调度的并行符号执行系统,采用异构的分布式环境,实现流水式的并行调度策略,防止仅以程序执行子树为调度负载带来的负载不均衡问题,提升并行效率。
2、本发明基于多Agent调度的并行符号执行系统,Agent技术管理灵活,特别适用于动态的、异构的分布式计算环境,成为分布式技术研究的一个重要领域,也是一个非常具有发展潜力的研究方向。
附图说明
图1为本发明的系统结构示意图;
图2 分布式任务调度流程图。
具体实施方式
实施例1:结合图1,一种基于多Agent调度的并行符号执行系统,包括分布式调度与监控单元10、执行迹生成单元11、符号执行单元12和约束求解单元13;所述的分布式调度与监控单元10用于任务的分配调度,监控执行迹生成单元11、符号执行单元12和约束求解单元13的节点空闲状态,以维持负载均衡;
所述的执行迹生成单元11包括多个执行迹生成节点111,每个节点结构功能完全相同,可以独立执行相关功能,且都包括1个Agent1111用于与分布式调度与监控单元10通信;其中,执行迹生成节点111用于将具体输入驱动被测程序实际执行,检测是否产生异常,同时记录程序执行指令序列,通过分析转换生成中间语言表示形式的程序执行迹。
所述的符号执行单元12包括多个符号执行节点121,每个节点结构功能完全相同,可以独立执行相关功能,且都包括1个Agent1211用于与分布式调度与监控单元10通信;其中,符号执行节点121用于对程序执行迹进行符号化模拟执行,收集路径分支的约束条件,生成相应的约束表达式。
所述的约束求解单元13包括多个约束求解节点131,每个节点结构功能完全相同,可以独立执行相关功能,且都包括1个Agent1311用于与分布式调度与监控单元10通信。其中,约束求解节点131用于对约束表达式进行深度优先取反求解,生成新的输入样本。同时,对取反的表达式进行标记,传回分布式调度与监控单元10中的约束表达式队列104。
所述的基于多Agent调度的并行符号执行系统所述的分布式调度与监控单元10包括:任务分配模块101、节点状态监控模块102、输入样本队列103、约束表达式队列104和执行迹队列105;其中,任务分配模块101用于将输入样本队列103、约束表达式队列104和执行迹队列105中的工作任务分配到执行迹生成单元11、符号执行单元12和约束求解单元133个工作单元进行执行,并从该3个工作单元收集产生的产品放入相应的3个任务队列;节点状态监控模块102用于监视探测执行迹生成单元11、符号执行单元12和约束求解单元13中工作节点的闲/忙状态;输入样本队列103用于存储约束求解单元13生成的测试样本;约束表达式队列104用于存储符号执行单元12生成的约束表达式;执行迹队列105用于存储执行迹生成单元11生成的中间表示形式的程序执行指令流记录。
所述的基于多Agent调度的并行符号执行系统,所述的分布式调度与监控单元10的具体工作方法包含以下步骤:
步骤一、节点状态监控模块102探测各个工作节点的闲/忙状态,如果存在执行迹生成节点111处于空闲,转入步骤二;如果存在符号执行节点121处于空闲,转入步骤三;如果存在约束求解节点131处于空闲,转入步骤四;如果不存在空闲状态节点,继续等待;
步骤二、任务分配模块101检查输入样本队列103是否为空,如果为空,继续等待;否则,从输入样本队列103取出一个输入样本传给Agent1111;
步骤三、任务分配模块101检查执行迹队列105是否为空,如果为空,继续等待;否则,从执行迹队列105取出一个执行迹传给Agent1211;
步骤四、任务分配模块101检查约束表达式队列104是否为空,如果为空,继续等待;否则,从约束表达式队列104取出一个约束求解表达式传给Agent1311;
步骤五、如果输入样本队列103、约束表达式队列104和执行迹队列105均为空,并且执行迹生成节点111、符号执行节点121和约束求解节点131全部为空闲状态,则全部测试任务完成。
所述的基于多Agent调度的并行符号执行系统,所述的执行迹生成单元11的具体方法包含以下步骤:
步骤X1、Agent1111接收任务分配模块101传来的输入样本,将自身节点状态置为“忙”;
步骤X2、启动测试任务,检测程序异常状态,记录程序指令流;
步骤X3、将记录的指令流转换成具有安全分析属性的中间语言形式,生成程序执行迹;
步骤X4、Agent1111将程序执行迹传入执行迹队列105;
步骤X5、Agent1111将自身节点状态置为“闲”。
所述的基于多Agent调度的并行符号执行系统,所述的符号执行单元12的具体方法包含以下步骤:
步骤Y1、Agent1211接收任务分配模块101传来的程序执行迹,将自身节点状态置为“忙”;
步骤Y2、对执行迹进行符号化模拟执行,收集路径分支约束条件,构建约束表达式;
步骤Y3、Agent1211将约束表达式传入约束表达式队列104;
步骤Y4、Agent1211将自身节点状态置为“闲”。
所述的基于多Agent调度的并行符号执行系统,所述的约束求解单元13的具体方法包含以下步骤:
步骤Z1、Agent1311接收任务分配模块101传来的输入样本,将自身节点状态置为“忙”;
步骤Z2、按照深度优先原则,选取约束条件进行取反,对约束求解表达式进行求解,生成新的输入样本;
步骤Z3、将取反的约束条件标记后,将新的约束表达式传入约束表达式队列104;
步骤Z4、将新生成的输入样本传入输入样本队列103;
步骤Z5、Agent1311将自身节点状态置为“闲”。
实施例2,结合图2,基于多Agent调度的并行符号执行系统包括:分布式调度与监控单元10、执行迹生成单元11、符号执行单元12和约束求解单元13。
所述的分布式调度与监控单元10用于对执行迹生成单元、符号执行单元和约束求解单元实现流水线并行调度。进行作业调度的目的是使得系统并行运行程度提高,避免出现空闲状态的节点。并行调度服的三个任务队列的生产者和消费者情况如下:1、输入样本队列103的生产者是约束求解单元13,消费者是执行迹生成单元11;2、执行迹队列105的生产者是执行迹生成单元11,消费者是符号执行单元12;3、约束表达式队列104的生产者是符号执行单元12,消费者是约束求解单元13。这些功能分别由任务分配模块101和节点状态监控模块102完成。
分布式任务调度具体包括如下步骤,
步骤S101:系统初始化,节点状态监控模块102分别将执行迹生成节点111、符号执行节点121和约束求解节点131置为“空闲状态”;
步骤S102:判断初始输入样本队列是否为空,如果为空,测试结束;否则,转入步骤S103;
步骤S103:任务分配模块101从输入样本队列选取样本发送给第i个空闲的执行迹生成节点,开始测试;
步骤S104:节点状态监控模块102置第i个执行迹生成节点状态为“忙”;
步骤S105:判断输入样本队列、约束表达式队列和执行迹队列是否全部为空,如果不全为空,转入步骤S106;否则,转入步骤S122;
步骤S106:分布式调度与监控单元10等待接收Agent的消息,如收到消息,转入步骤S107;否则,继续等待;
步骤S107:判断消息来源于哪类工作节点,如果来自执行迹生成节点111,转入步骤S108;如果来自符号执行节点121,转入步骤S114;如果来自约束求解节点121,转入步骤S118;
步骤S108:判断消息的任务类型,如果是请求新任务,转入步骤S109;如果是提交完成的任务,转入步骤S113;
步骤S109:判断输入样本队列103是否为空,如果为空,转入步骤S110;否则,转入步骤S111;
步骤S110:节点状态监控模块102将请求消息源节点状态置为“空闲”,转入步骤S105;
步骤S111:任务分配模块101从输入样本队列103选取任务发送给消息源节点,开始执行测试;
步骤S112:节点状态监控模块102将消息源节点状态置为“忙”,转入步骤S105;
步骤S113:将消息源节点生成的执行迹加入执行迹队列105,转入步骤S110;
步骤S114:判断消息的任务类型,如果是请求新任务,转入步骤S109;如果是提交完成的任务,转入步骤S117;
步骤S115:判断执行迹队列105是否为空,如果为空,转入步骤S110;否则,转入步骤S116;
步骤S116:任务分配模块101从执行迹队列选取任务发送给消息源节点,开始符号执行,转入步骤S112;
步骤S117:将消息源节点生成的约束表达式加入约束表达式队列104,转入步骤S110;
步骤S118:判断消息的任务类型,如果是请求新任务,转入步骤S119;如果是提交完成的任务,转入步骤S121;
步骤S119:判断约束表达式队列104是否为空,如果为空,转入步骤S110;否则,转入步骤S120;
步骤S120:从约束表达式队列104选取任务发送给消息源节点,开始约束求解,转入步骤S112;
步骤S121:将消息源节点生成的测试样本加入输入样本队列(S121),转入步骤S110;
步骤S122:节点状态监控模块102判断三类工作节点是否全部“空闲”,如果不全为“空闲”,转入步骤S106;否则,结束。
Claims (4)
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)将自身节点状态置为“闲”。
3.根据权利要求1所述的基于多Agent调度的并行符号执行系统,其特征在于:所述的符号执行单元(12)的具体方法包含以下步骤:
步骤Y1、Agent(1211)接收任务分配模块(101)传来的程序执行迹,将自身节点状态置为“忙”;
步骤Y2、对执行迹进行符号化模拟执行,收集路径分支约束条件,构建约束表达式;
步骤Y3、Agent(1211)将约束表达式传入约束表达式队列(104);
步骤Y4、Agent(1211)将自身节点状态置为“闲”。
4.根据权利要求1所述的基于多Agent调度的并行符号执行系统,其特征在于:所述的约束求解单元(13)的具体方法包含以下步骤:
步骤Z1、Agent(1311)接收任务分配模块(101)传来的输入样本,将自身节点状态置为“忙”;
步骤Z2、按照深度优先原则,选取约束条件进行取反,对约束求解表达式进行求解,生成新的输入样本;
步骤Z3、将取反的约束条件标记后,将新的约束表达式传入约束表达式队列(104);
步骤Z4、将新生成的输入样本传入输入样本队列(103);
步骤Z5、Agent(1311)将自身节点状态置为“闲”。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610063538.6A CN105760219B (zh) | 2016-01-29 | 2016-01-29 | 基于多Agent分布式调度的并行符号执行系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610063538.6A CN105760219B (zh) | 2016-01-29 | 2016-01-29 | 基于多Agent分布式调度的并行符号执行系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105760219A CN105760219A (zh) | 2016-07-13 |
CN105760219B true CN105760219B (zh) | 2019-02-12 |
Family
ID=56342723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610063538.6A Active CN105760219B (zh) | 2016-01-29 | 2016-01-29 | 基于多Agent分布式调度的并行符号执行系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105760219B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649124B (zh) * | 2016-12-28 | 2019-04-02 | 桂林电子科技大学 | 一种基于Actor模型的并行动态符号执行方法和系统 |
WO2018129706A1 (en) | 2017-01-13 | 2018-07-19 | Oracle International Corporation | System and method for conditional call path monitoring in a distributed transactional middleware environment |
CN108881150B (zh) * | 2017-12-29 | 2021-03-23 | 北京安天网络安全技术有限公司 | 一种检测任务的处理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102222035A (zh) * | 2011-07-25 | 2011-10-19 | 公安部第三研究所 | 基于符号执行技术的软件行为检测系统及检测方法 |
CN103049377A (zh) * | 2012-12-14 | 2013-04-17 | 中国信息安全测评中心 | 基于路径簇规约的并行符号执行方法 |
CN104376382A (zh) * | 2014-11-18 | 2015-02-25 | 重庆大学 | 面向大规模多Agent系统的非对称分布式约束优化算法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8763001B2 (en) * | 2010-10-29 | 2014-06-24 | Fujitsu Limited | Technique for efficient parallelization of software analysis in a distributed computing environment through intelligent dynamic load balancing |
-
2016
- 2016-01-29 CN CN201610063538.6A patent/CN105760219B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102222035A (zh) * | 2011-07-25 | 2011-10-19 | 公安部第三研究所 | 基于符号执行技术的软件行为检测系统及检测方法 |
CN103049377A (zh) * | 2012-12-14 | 2013-04-17 | 中国信息安全测评中心 | 基于路径簇规约的并行符号执行方法 |
CN104376382A (zh) * | 2014-11-18 | 2015-02-25 | 重庆大学 | 面向大规模多Agent系统的非对称分布式约束优化算法及系统 |
Non-Patent Citations (1)
Title |
---|
基于路径符号执行的数据相关性分析;张健;《中国优秀博硕士学位论文全文数据库 (硕士)信息科技辑》;20040915(第03期);全文 |
Also Published As
Publication number | Publication date |
---|---|
CN105760219A (zh) | 2016-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110443573A (zh) | 审批管理平台及其审批方法、工作流生成方法 | |
CN105760219B (zh) | 基于多Agent分布式调度的并行符号执行系统 | |
Ding et al. | An integrated design framework of fault-tolerant wireless networked control systems for industrial automatic control applications | |
Lv et al. | Microservice deployment in edge computing based on deep Q learning | |
CN104636197B (zh) | 一种数据中心虚拟机迁移调度策略的评价方法 | |
Wang et al. | Bottlenecks in production networks: An overview | |
CN107122243A (zh) | 用于cfd仿真计算的异构集群系统及cfd计算方法 | |
CN102222268A (zh) | 基于多种群混合粒子群算法的流水车间调度方法 | |
Marie-Magdelaine et al. | Proactive autoscaling for cloud-native applications using machine learning | |
CN105791166B (zh) | 一种负载均衡分配的方法及系统 | |
Kim et al. | A deep learning approach to vnf resource prediction using correlation between vnfs | |
Chao et al. | F-mstorm: Feedback-based online distributed mobile stream processing | |
CN113485801A (zh) | 基于神经网络相似度建模的实时dnn调度系统及方法 | |
CN106844180A (zh) | 一种OpenStack平台计算资源的监控预测方法 | |
Wang et al. | How task allocation strategy affects team performance: A computational experiment | |
CN106612213A (zh) | 设备测试方法及装置 | |
CN106776309A (zh) | 一种测试时间优化方法及系统 | |
Ferme et al. | Integrating faban with docker for performance benchmarking | |
CN106649124B (zh) | 一种基于Actor模型的并行动态符号执行方法和系统 | |
CN105517176A (zh) | 动态调度虚拟化基站资源的方法 | |
Li et al. | A Digital Twin of the 5G Radio Access Network for Anomaly Detection Functionality | |
CN204442405U (zh) | 一种智能变电站通信网络试验平台 | |
Fernandes et al. | Worker assignment in dual resource constrained systems subject to machine failures: a simulation study | |
CN104102579A (zh) | 一种基于多核或众核嵌入式处理器的网络测量系统及方法 | |
Dussa-Zieger et al. | Scheduling of parallel programs on configurable multiprocessors by genetic algorithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |