System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術屬于數據通信,具體涉及一種多核并發輪詢調度方法、裝置、電子設備及存儲介質。
技術介紹
1、目前,以unix-like的分時操作系統為例,傳統網絡設備驅動包多采用中斷策略處理數據報文。但是,隨著網絡接口帶寬的向前邁進,原本每個報文都會觸發一次中斷的策略,因此產生的開銷變得尤為突出;大量的數據報文到來觸發密集且頻繁的中斷開銷,導致系統不堪重負,開始在很多特定領域限制其應用需求的發展和推進。
2、現有技術中,隨著dpdk(數據平面開發套件)的問世,從工程角度上大量地優化了數據包處理的機制與策略,使得數據包的傳輸處理得到了巨大的提升;提升的同時,也顯著地拓寬了數據包處理的自由度。但是,在真實的使用場景下,工程化的程序在集成dpdk后,因為框架內眾多的優化機制,而不可避免地提高了工程的復雜度。其中,現代軟件工程廣泛運用的多核多線程技術,便是優化項之一;因此直接導致了dpdk托管生命周期后的線程調度的復雜度大幅增加。
技術實現思路
1、為此,本專利技術提供一種多核并發輪詢調度方法、裝置、電子設備及存儲介質,實現不依賴分時操作系統的自動調度與負載均衡,使用多核多線程技術與事件輪詢機制,可適用于超高速數據平面通信的并發輪詢調度。
2、為了實現上述目的,本專利技術提供如下技術方案:第一方面,提供一種多核并發輪詢調度方法,包括以下步驟:
3、s001:對核心調度組件ms進行初始化,接管主線程并使主線程運行在核心調度組件ms之上,轉到s002;
5、s003:核心調度組件ms檢測抽象任務gt的集合列表元素數量,如果集合列表元素數量不為空,遍歷注冊的抽象任務gt的集合列表,對每一項抽象任務gt的任務狀態機tsm進行檢測,剔除任務狀態機tsm異常的抽象任務gt;遍歷結束轉到s004;
6、s004:核心調度組件ms標記抽象任務gt的集合列表的第一個元素抽象任務gt0為主任務,并執行抽象任務gt0的一般性初始化gdi;一般性初始化gdi執行成功則轉到s005;
7、s005:核心調度組件ms從抽象任務gt的集合列表的第二個元素開始遍歷,對每一項抽象任務gt在映射的slave邏輯核心上執行一般性初始化gdi;
8、如果一般性初始化gdi執行成功,喚起注冊的初始化trdi;之后核心調度組件ms對每一項抽象任務gt在映射的slave邏輯核心上執行一般性運行gdr;
9、如果一般性運行gdr執行成功喚起異步事件輪詢器aep;
10、如果抽象任務gt集合列表具有下一項,則轉到s005的抽象任務gt集合列表的下一項,否則遍歷結束轉到s006;
11、s006:核心調度組件ms執行抽象任務gt0的一般性運行gdr,一般性運行gdr執行結束轉到s007;
12、s007:核心調度組件ms從抽象任務gt集合列表的第二個元素開始遍歷,對每一項抽象任務gt發送事件trdrintr;
13、若一般性運行gdr執行成功,在抽象任務gt映射的slave邏輯核心上執行一般性銷毀gdd,如果一般性銷毀gdd執行成功,喚起自定義任務的注冊銷毀trdd;
14、如果抽象任務gt集合列表具有下一項,則轉到s007的抽象任務gt的集合列表的下一項,否則遍歷結束轉到s008;
15、s008:核心調度組件ms執行抽象任務gt0的一般性銷毀gdd,一般性銷毀gdd執行結束轉到s009;
16、s009:銷毀并終止核心調度組件ms,歸還主線程。
17、作為多核并發輪詢調度方法優選方案,步驟s003中,如果集合列表元素數量為空,則轉到s009;
18、步驟s004中,如果一般性初始化gdi執行失敗,則轉到s009。
19、作為多核并發輪詢調度方法優選方案,步驟s005中,當主線程阻塞等待抽象任務gt的任務狀態機tsm變更,之后回收slave邏輯核心資源;
20、步驟s005中,如果一般性初始化gdi執行失敗,則轉到s005的抽象任務gt集合列表的下一項。
21、作為多核并發輪詢調度方法優選方案,當主線程阻塞等待抽象任務gt的任務狀態機tsm變更,之后回收slave邏輯核心資源;
22、步驟s007中,如果一般性運行gdr執行失敗,則直接轉到s007的抽象任務gt的集合列表的下一項。
23、作為多核并發輪詢調度方法優選方案,抽象任務gt的一般性初始化gdi執行步驟包括:
24、s101:啟動一般性初始化gdi,檢查當前抽象任務gt的任務狀態機tsm;若當前抽象任務gt的任務狀態機tsm處于非等待wait狀態,轉到s105;否則轉到s102;
25、s102:檢查當前抽象任務gt是否注冊初始化trdi;未注冊則轉到s103;注冊則執行初始化trdi,初始化trdi執行成功轉到s103,初始化trdi執行失敗轉到s105;
26、s103:將當前抽象任務gt的任務狀態機tsm變更至就緒prepared,轉到s104;
27、s104:返回初始化成功;
28、s105:返回初始化失敗。
29、作為多核并發輪詢調度方法優選方案,抽象任務gt的一般性運行gdr執行步驟包括:
30、s201:啟動一般性運行gdr,檢查當前抽象任務gt的任務狀態機tsm;若當前抽象任務gt的任務狀態機tsm處于非就緒prepared狀態,轉到s207;否則轉到s202;
31、s202:注冊執行初始化trdr0~trdrn及trdrintr至異步事件輪詢器aep,注冊成功轉到s203,注冊失敗轉到s207;
32、s203:將當前抽象任務gt的任務狀態機tsm變更至運行running狀態,轉到s204;
33、s204:啟動異步事件輪詢器aep,異步事件輪詢器啟動成功轉到s205;異步事件輪詢器啟動失敗,則變更當前抽象任務gt的任務狀態機tsm至完成finished狀態,轉到s207;
34、s205:初始化trdr0~trdrn全部執行完畢,或者trdrintr中斷觸發;變更當前抽象任務gt的狀態至完成finished狀態,轉到s206;
35、s206:返回運行成功;
36、s207:返回運行失敗。
37、作為多核并發輪詢調度方法優選方案,抽象任務gt的一般性銷毀gdd執行步驟包括:
38、s301:啟動一般性銷毀gdd,檢查當前抽象任務gt的任務狀態機tsm;若當前抽象任務gt的任務狀態機tsm處于非完成finished狀態,轉到s305;否則轉到s302;
39、s302:檢查當前抽象任務gt是否注冊銷毀trdd;
40、本文檔來自技高網...
【技術保護點】
1.一種多核并發輪詢調度方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種多核并發輪詢調度方法,其特征在于,步驟S003中,如果集合列表元素數量為空,則轉到S009;
3.根據權利要求1所述的一種多核并發輪詢調度方法,其特征在于,步驟S005中,當主線程阻塞等待抽象任務的任務狀態機變更,之后回收SLAVE邏輯核心資源;
4.根據權利要求1所述的一種多核并發輪詢調度方法,其特征在于,步驟S007中,當主線程阻塞等待抽象任務的任務狀態機變更,之后回收SLAVE邏輯核心資源;
5.根據權利要求1所述的一種多核并發輪詢調度方法,其特征在于,抽象任務的一般性初始化執行步驟包括:
6.根據權利要求1所述的一種多核并發輪詢調度方法,其特征在于,抽象任務的一般性運行執行步驟包括:
7.根據權利要求1所述的一種多核并發輪詢調度方法,其特征在于,抽象任務的一般性銷毀執行步驟包括:
8.一種多核并發輪詢調度裝置,采用權利要求1至7任一項所述的一種多核并發輪詢調度方法,其特征在于,包括:
9.一種
10.一種電子設備,包括:存儲器和處理器;所述處理器和所述存儲器通過總線完成相互間的通信;所述存儲器存儲有可被所述處理器執行的程序指令,其特征在于,所述處理器調用所述程序指令執行權利要求1至7任一項所述的一種多核并發輪詢調度方法。
...【技術特征摘要】
1.一種多核并發輪詢調度方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種多核并發輪詢調度方法,其特征在于,步驟s003中,如果集合列表元素數量為空,則轉到s009;
3.根據權利要求1所述的一種多核并發輪詢調度方法,其特征在于,步驟s005中,當主線程阻塞等待抽象任務的任務狀態機變更,之后回收slave邏輯核心資源;
4.根據權利要求1所述的一種多核并發輪詢調度方法,其特征在于,步驟s007中,當主線程阻塞等待抽象任務的任務狀態機變更,之后回收slave邏輯核心資源;
5.根據權利要求1所述的一種多核并發輪詢調度方法,其特征在于,抽象任務的一般性初始化執行步驟包括:
6.根據權利要求1所述的一種多核并發輪詢調度方法,其特征在于,...
【專利技術屬性】
技術研發人員:趙維,馬娜,白紅霞,王瀟,徐劍南,李海亮,甄小麗,
申請(專利權)人:江蘇新質信息科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。