两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種CPU空閑時間的確定方法、裝置、電子設備及介質與流程

文檔序號:40603014發(fā)布日期:2025-01-07 20:43閱讀:4來源:國知局
一種CPU空閑時間的確定方法、裝置、電子設備及介質與流程

本技術涉及通信,特別是涉及一種cpu空閑時間的確定方法、裝置、電子設備及介質。


背景技術:

1、當前因特網和其他互聯(lián)網必須承載的通信量在持續(xù)增長,為了應對這種增長,傳輸控制協(xié)議/網際協(xié)議(transmission?control?protocol/internet?protocol,tcp/ip)體系結構發(fā)展了服務質量(quality?of?service,qos)框架,以支持各種類型的擁有各種服務質量需求的通信量。數(shù)據(jù)平面是qos框架中的一個平面,能夠實現(xiàn)通信過程中的隊列管理、排隊調度、擁塞避免等對數(shù)據(jù)流進行操作的機制,對提高網絡通信的效率起著至關重要的作用。

2、對于網絡設備的數(shù)據(jù)平面,在傳統(tǒng)方法中,網卡接收到數(shù)據(jù)幀時,會通過直接存儲器訪問(direct?memory?access,dma)將數(shù)據(jù)幀存入預先分配的內核緩沖區(qū),然后網卡再更新接收描述符環(huán)(buffer?descriptor?ring)以表明有報文需要處理,接收描述符環(huán)是網卡與操作系統(tǒng)協(xié)商好的一塊內存地址,用于描述報文的信息。然后網卡通過中斷通知提醒操作系統(tǒng),以使得操作系統(tǒng)基于更新后的接收描述符獲取并處理數(shù)據(jù)幀,操作系統(tǒng)的內核需要經過中斷上下文的切換來處理該數(shù)據(jù)幀,在此過程中涉及到的系統(tǒng)調用以及數(shù)據(jù)復制等操作都會帶來性能損耗。

3、為了降低性能損耗,出現(xiàn)了一種輪詢收發(fā)包的優(yōu)化方案,比如數(shù)據(jù)平面開發(fā)工具包(data?plane?development?kit,dpdk)。采用dpdk,可以由cpu輪詢判斷是否存在需要處理的報文,不需要經過中斷上下文切換,且能夠通過用戶空間的i/o技術(userspace?i/o,uio)和大頁內存等方式能夠減少數(shù)據(jù)復制的開銷。然而,采用輪詢判斷的方式會增加cpu的消耗,在沒有需要處理的報文時,cpu依然在執(zhí)行輪詢動作,并沒有對數(shù)據(jù)進行處理,這種情況下相當于cpu在進行空轉,然而cpu的利用率會被認為是100%,即對cpu實際的利用率的評估不準確,難以獲知cpu的實際空閑時間。


技術實現(xiàn)思路

1、本技術實施例的目的在于提供一種cpu空閑時間的確定方法、裝置、電子設備及介質,以準確確定cpu的實際空閑。具體技術方案如下:

2、第一方面,本技術實施例提供一種cpu空閑時間的確定方法,包括:

3、在cpu的每個時鐘周期開始時,通過內核判斷是否存在正在運行的輪詢任務的進程;

4、若是,則通過所述內核從共享內存中獲取所述輪詢任務的標記值,所述共享內存為用戶態(tài)與內核態(tài)共享的物理內存,在所述輪詢任務的輪詢結果為不存在需要處理的報文的情況下,所述標記值為空轉標記;

5、若所述標記值為空轉標記,則通過所述內核將當前時鐘周期記錄為所述cpu的空閑時間。

6、在一種可能的實現(xiàn)方式中,在所述通過所述內核從共享內存中獲取所述輪詢任務的標記值之后,所述方法還包括:

7、若所述標記值不是空轉標記,則通過所述內核將當前時鐘周期記錄為所述cpu的執(zhí)行時間。

8、在一種可能的實現(xiàn)方式中,所述通過內核判斷是否存在正在運行的輪詢任務的進程,包括:

9、通過所述內核判斷所述共享內存中是否存在輪詢任務標記;

10、若是,則確定存在正在運行的輪詢任務的進程;

11、若否,則確定不存在正在運行的輪詢任務的進程。

12、在一種可能的實現(xiàn)方式中,所述方法還包括:

13、當啟動所述輪詢任務的進程時,通過所述輪詢任務的進程在所述共享內存中設置輪詢任務標記;

14、若所述輪詢任務的輪詢結果為不存在需要處理的報文,則通過所述輪詢任務的進程判斷所述共享內存中的標記值是否為空轉標記,若否,則將所述共享內存中的標記值設置為空轉標記;

15、若所述輪詢任務的輪詢結果為存在需要處理的報文,則通過所述輪詢任務的進程判斷所述共享內存中的標記值是否為空轉標記,若是,則取消所述空轉標記。

16、在一種可能的實現(xiàn)方式中,所述方法還包括:

17、當啟動所述輪詢任務的進程時,通過所述輪詢任務的進程向所述內核申請所述共享內存。

18、第二方面,本技術實施例提供一種cpu空閑時間的確定裝置,包括:

19、第一判斷模塊,用于在cpu的每個時鐘周期開始時,通過內核判斷是否存在正在運行的輪詢任務的進程;

20、獲取模塊,用于若所述第一判斷模塊的判斷結果為是,則通過所述內核從共享內存中獲取所述輪詢任務的標記值,所述共享內存為用戶態(tài)與內核態(tài)共享的物理內存,在所述輪詢任務的輪詢結果為不存在需要處理的報文的情況下,所述標記值為空轉標記;

21、記錄模塊,用于若所述標記值為空轉標記,則通過所述內核將當前時鐘周期記錄為所述cpu的空閑時間。

22、在一種可能的實現(xiàn)方式中,所述記錄模塊,還用于若所述標記值不是空轉標記,則通過所述內核將當前時鐘周期記錄為所述cpu的執(zhí)行時間。

23、在一種可能的實現(xiàn)方式中,所述第一判斷模塊,具體用于:

24、通過所述內核判斷所述共享內存中是否存在輪詢任務標記;

25、若是,則確定存在正在運行的輪詢任務的進程;

26、若否,則確定不存在正在運行的輪詢任務的進程。

27、在一種可能的實現(xiàn)方式中,所述裝置還包括:

28、設置模塊,用于當啟動所述輪詢任務的進程時,通過所述輪詢任務的進程在所述共享內存中設置輪詢任務標記;

29、第二判斷模塊,用于若所述輪詢任務的輪詢結果為不存在需要處理的報文,則通過所述輪詢任務的進程判斷所述共享內存中的標記值是否為空轉標記;

30、所述設置模塊,還用于若所述第二判斷模塊的判斷結果為否,則將所述共享內存中的標記值設置為空轉標記;

31、第三判斷模塊,用于若所述輪詢任務的輪詢結果為存在需要處理的報文,則通過所述輪詢任務的進程判斷所述共享內存中的標記值是否為空轉標記;

32、所述設置模塊,還用于若所述第三判斷模塊的判斷結果為是,則取消所述空轉標記。

33、在一種可能的實現(xiàn)方式中,所述裝置還包括:

34、申請模塊,用于當啟動所述輪詢任務的進程時,通過所述輪詢任務的進程向所述內核申請所述共享內存。

35、第三方面,本技術實施例還提供一種電子設備,包括處理器、通信接口、存儲器和通信總線,其中,處理器,通信接口,存儲器通過通信總線完成相互間的通信;

36、存儲器,用于存放計算機程序;

37、處理器,用于執(zhí)行存儲器上所存放的程序時,實現(xiàn)上述第一方面所述的方法。

38、第四方面,本技術實施例提供一種計算機可讀存儲介質,所述計算機可讀存儲介質內存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)上述第一方面所述的方法。

39、第五方面,本技術實施例提供一種包含指令的計算機程序產品,當其在計算機上運行時,使得計算機執(zhí)行上述第一方面所述的方法。

40、采用上述技術方案,在cpu的每個時鐘周期,若存在正在運行的輪詢任務的進程,則可通過內核從共享內存中獲取該輪詢任務的標記值,由于該共享內存是用戶態(tài)與內核態(tài)共享的,因此無需通過中斷的方式通知內核,不會存在中斷上下文的切換,進而不會因此帶來性能損耗。而且,若內核獲取到的標記值為空轉標記,則說明當前輪詢任務的輪詢結果為不存在需要處理的報文,即cpu在當前時鐘周期內處于空轉狀態(tài),進而將當前時鐘周期記錄為cpu的空閑時間,如此,可以將cpu空轉的時間準確地記錄為空閑時間,能夠準確得到cpu的實際空閑時間。

41、當然,實施本技術的任一產品或方法并不一定需要同時達到以上所述的所有優(yōu)點。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
乌拉特后旗| 扎鲁特旗| 武胜县| 炎陵县| 册亨县| 扎鲁特旗| 定兴县| 茂名市| 沙雅县| 东丽区| 台山市| 磐石市| 行唐县| 应城市| 合肥市| 民权县| 镇远县| 治多县| 江川县| 凤城市| 维西| 洛阳市| 玉树县| 邹平县| 秭归县| 金堂县| 宣恩县| 崇阳县| 集安市| 营山县| 江孜县| 临桂县| 隆化县| 嘉荫县| 灵寿县| 寿光市| 宜川县| 樟树市| 阿图什市| 华池县| 泸定县|