[發明專利]基于多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.szxzyx.cn/pat/books/201610063538.6/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:云環境下資源調度方法及系統
- 下一篇:一種軟件升級方法及終端設備





