[發明專利]基于容器線程管理技術的大規模網絡節點擬真方法在審
| 申請號: | 202210692183.2 | 申請日: | 2022-06-17 |
| 公開(公告)號: | CN115098220A | 公開(公告)日: | 2022-09-23 |
| 發明(設計)人: | 史琰;曹琦軒;白衛崗;盛敏;李建東;李浩然;周笛;朱彥;劉俊宇;鄭陽;文娟 | 申請(專利權)人: | 西安電子科技大學 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06F9/54;G06F9/448;G06F9/50;H04L41/14 |
| 代理公司: | 陜西電子工業專利中心 61205 | 代理人: | 田文英;王品華 |
| 地址: | 710071*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 容器 線程 管理 技術 大規模 網絡 節點 方法 | ||
1.一種基于容器線程管理技術的大規模網絡節點擬真方法,其特征在于:多線程為同一個發送隊列并發出隊與入隊分組、根據任務動態分配與管理線程、根據發送隊列的分組流強度動態調整接收處理線程數量;該擬真方法的具體步驟包括如下:
步驟1,調度網絡擬真場景內所有節點:
在宿主機中創建與網絡擬真場景中網絡節點一一對應的容器,拷貝所有節點的可執行文件到容器中,加載并執行可執行文件;
步驟2,創建所有節點的共享內存區:
在宿主機的共享內存目錄中創建內存映射文件作為共享內存區,并將此內存映射文件映射到所有節點的地址空間;
步驟3,多線程通過發送隊列進行多輸入-多輸出分組流的傳輸:
步驟3.1,每個節點在共享內存上創建發送隊列,并為該節點發送隊列設置一個尾索引和一個頭索引,頭索引指向的隊列單元是分組出隊位置,尾索引指向的隊列單元是分組入隊位置;
步驟3.2,當多個線程同時向一個發送隊列入隊時,均通過原子操作確定入隊索引值;前一個執行原子操作的線程在將被請求入隊的發送隊列尾索引值,作為該線程的入隊索引值的同時,將該發送隊列尾索引值加1,后一個執行原子操作的線程將前一個線程更新過的發送隊列尾索引作為該線程的入隊索引值,以此類推,每一個后執行的線程入隊索引值均比前一個線程的入隊索引值大1,并通過其入隊索引值入隊分組到發送隊列;
步驟3.3,當多個線程同時從一個發送隊列出隊時,均通過原子操作確定出隊索引值;前一個執行原子操作的線程在將被請求出隊的發送隊列頭索引值,作為該線程的出隊索引值的同時,將該發送隊列頭索引值加1,后一個執行原子操作的線程將前一個線程更新過的發送隊列頭索引作為該線程的出隊索引值,以此類推,每一個后執行的線程出隊索引值均比前一個線程的出隊索引值大1,并通過其出隊索引值從發送隊列出隊分組;
步驟4,根據任務動態分配與管理線程:
步驟4.1,每個節點創建一個用于管理動態線程的空閑線程管理隊列,通過該節點空閑線程管理隊列保存節點所有動態線程的線程號、線程狀態和函數指針;
步驟4.2,每個節點通過為該節點動態線程設置有限狀態機,在為該節點動態線程分配任務后,使其進入任務執行狀態,在該節點動態線程執行完任務后,阻塞該動態線程,使其進入空閑狀態;
步驟4.3,每個節點設置一個其處于空閑狀態的動態線程的最大數量,管理該節點處于空閑狀態的動態線程的數量始終小于該最大數量;該節點提前創建好對應數量的處于空閑狀態的動態線程,并保存其信息到該節點空閑線程管理隊列;當有該節點負責處理的新任務到達時,該節點將該任務分配給該節點的一個處于空閑狀態的動態線程;當該節點所有動態線程的狀態均為任務執行狀態時,該節點新創建一個處于空閑狀態的動態線程;當該節點通過空閑線程管理隊列檢查到處于空閑狀態的動態線程數量大于空閑狀態的動態線程最大數量時,該節點銷毀多余的空閑狀態動態線程;
步驟5,接收節點接收處理一個或多個源節點發送隊列中的分組:
步驟5.1,每個節點創建一個用于保存該節點需要接收處理的一個或多個源節點的發送隊列信息的注冊表,發送隊列信息具體包括已注冊的發送隊列數量、標記發送隊列唯一序號的發送隊列號以及標記發送隊列的分組入隊時刻的發送隊列更新時間;源節點在通過其發送隊列發送分組前,將該源節點發送隊列信息保存到接收節點的注冊表,向接收節點注冊發送隊列;
步驟5.2,一個或多個源節點在向接收節點注冊其發送隊列后,通知接收節點從該接收節點的空閑線程管理隊列中獲取一個用于接收處理該源節點發送隊列的接收處理線程;
步驟5.3,接收節點的接收處理線程通過輪詢接收節點注冊表中一個或多個源節點的發送隊列號,查詢到接收節點需要接收處理的一個或多個發送隊列,并從各發送隊列中接收處理分組;
步驟6,根據發送隊列的分組流強度動態調整接收處理線程數量:
步驟6.1,源節點在發送隊列擁塞時通知接收節點調度更多的接收處理線程;
步驟6.2,接收節點設置一個用于判斷發送隊列的分組流是否中斷的隊列中斷閾值,并在檢查發送隊列為空時,將該發送隊列的更新時間與當前時間進行對比,若當前時間與發送隊列更新時間的差值大于隊列中斷閾值,則注銷注冊表中此發送隊列的信息,不再從該發送隊列接收處理分組;
步驟6.3,接收節點的接收處理線程在輪詢注冊表接收所有發送隊列時,若檢查所有發送隊列均為空,則判定接收節點的其他接收處理線程已提前輪詢處理完所有發送隊列,接收節點的接收處理線程數量過多,并將自身回收到空閑線程管理隊列。
2.根據權利要求1所述的基于容器線程管理技術的大規模網絡節點擬真方法,其特征在于:步驟4中所述節點設置處于空閑狀態的動態線程的最大數量為2;當節點檢查空閑狀態的動態線程數量為0后,創建1個處于空閑狀態的動態線程;當節點處于空閑狀態的動態線程數量大于2時,節點銷毀多余的空閑狀態動態線程。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安電子科技大學,未經西安電子科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210692183.2/1.html,轉載請聲明來源鉆瓜專利網。





