色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

介紹一種基于核集的多核嵌入式實時調度方法

麥克泰技術 ? 來源:嵌入式系統專家之聲 ? 2024-03-05 11:31 ? 次閱讀

0 引言

在多任務環境下,嵌入式系統中通常運行著多于處理機數目的任務,這就要求操作系統能夠按照某種算法為處于就緒狀態的任務動態地分配處理機,處理機調度的實質是對處理器資源進行分配。調度算法的好壞直接影響系統運行時的性能(如響應的及時性、系統的吞吐量以及資源利用率等),是操作系統不可或缺的一部分。

多核處理器的引入使得嵌入式計算平臺中的任務能夠在不同處理器核心上并行運行,增加系統計算能力的同時也為系統調度帶來了新的挑戰。在單核處理器中調度程序僅需遍歷任務就緒表、找到最高優先級的任務即可,而在多核處理器中不僅要考慮優先級問題,還要考慮任務將在哪個 CPU 核上運行的問題。本文基于多核嵌入式實時操作系統半劃分調度算法,針對多核操作系統中任務調度存在的問題,在保證原有操作系統調度機制不被破壞的基礎上提出了一種基于核集的多核嵌入式調度方法。改進了原來調度策略中任務只運行于一個處理器核或者可以運行于所有核的狀況,使任務能夠運行于局部核,在一定程度上可以解決半劃分調度算法中負載不均衡問題。

1 多核嵌入式實時調度

多處理機調度分為全局調度(global scheduling)和劃分調度(partitioned scheduling)。全局調度允許任務在所有處理核心之間自由遷移;劃分調度則是將每個任務綁定到固定的處理核心上運行。全局調度能夠提高處理機的利用率,但卻會帶來額外的系統開銷;劃分調度則恰恰相反,任務只會在固定處理核上運行,緩存命中率較高,不會產生任務跨核遷移的花銷。但由于任務被綁定在固定核上,無法有效利用空閑處理器,處理機利用率較低。為了解決這一矛盾,研究者們提出一種半劃分調度算法,該方法將全局調度和劃分調度的行為特性進行綜合,吸納了兩種方法的優點。在任務調度過程中,一部分任務采用劃分調度思想,另外一部分任務則采用全局調度思想。這種策略可以均衡系統的負載,解決空閑處理器難以利用的問題。

1.1 全局調度

全局調度即任務可運行于任一處理器核,操作系統會根據任務優先級、空閑處理器核的情況進行任務的動態分配。全局調度是比較簡單的調度算法,通過構建一個全局就緒隊列來管理就緒任務。系統有空閑處理器核時便會 從全局就緒隊列中調度一個最高優先級的任務。

多核采用該調度策略時,任務執行的時序關系將從單核原有的串行執行序列完全變為并行執行,較低優先級的任務將會與高優先級的任務在不同處理器核上同時運行。多核全局調度示意圖如圖1所示,在四處理器核系統中,任務1、任務2、任務3雖然優先級不同,但能夠同時在不同核上運行,當處理器核3空閑時調度器將較低優先級任務調度到該空閑核上運行。在任務完全不相關的情況下,采用全局調度算法可以充分利用多核特性,有效利用空閑處理器提高系統總體處理機的利用率,自動平衡整個系統負載。

90beabc6-daa0-11ee-a297-92fbcf53809c.png

圖1 多核全局調度

雖然多核系統通過全局調度能夠帶來很多好處,但其存在著不可避免的缺點,主要包括以下三點:

① 無執行序列:多核全局調度在提高任務執行性能的同時,任務的執行序列發生改變,原有任務之間的執行關系將因為并行執行而發生變化,需要對任務的調度安排進行統籌考慮。

② 緩存命中率低:多核處理器中每個處理器核都有自己的緩存,其中存儲任務的相關數據,而在全局調度中任務可能會被調度到其他處理器核上,這無疑會降低緩存命中率,從而大幅度降低系統性能。

③ 全局就緒鏈表訪問沖突:系統中僅有一個全局就緒鏈表屬于核間共享數據,在某一時刻只能由一個核使用,訪問沖突會隨著核數的增大而愈加頻繁,增加系統任務切換花銷。

1.2 劃分調度

針對全局調度的上述缺點,一些多核嵌入式實時操作系統選擇使用劃分調度。劃分調度策略是對任務集進行劃分,每個任務都與特定的處理器核建立綁定關系(即指定任務的親和屬性),任務僅在預先分配的處理器核上執行。在任務執行的過程中,不會在處理器核間進行遷移。當創建一個任務時,完全由用戶來決定該任務在哪個處理器核上運行。劃分調度的基本思想如圖2所示,系統為每個處理器核建立一個任務就緒隊列,該隊列上的任務均為綁定親和屬性的任務,處理器核在進行任務調度時僅在對應自己核號的親和隊列(私有隊列)上選擇任務。

90cdbd96-daa0-11ee-a297-92fbcf53809c.png

圖2 多核劃分調度

使用劃分調度策略時,任務運行的確定性比全局任務調度的確定性更好,且由于沒有任務的跨核調度,系統調度成本顯著降低,處理器的緩存命中率與單核情況下保持一致。相對全局調度,劃分調度主要存在以下缺點:

① 核間通信較為頻繁:由于任務綁定在核上執行,那么不同處理核上運行的任務之間交互較多時,將導致核間通信(中斷)的頻繁發生,如此會對任務的執行產生一定負面影響。

② 處理器總體利用率相對較低:任務綁定在固定處理器核上運行會導致系統難以利用空閑處理器核,出現有的核空閑、有的核忙綠的低效率現象。

1.3 半劃分調度

在全局調度模式下系統的總體處理機利用率較高,但卻可能帶來較大的系統開銷;劃分調度則恰恰相反,雖然調度花銷較少,但空閑處理機無法充分利用,處理機使用率較低。為了解決這一矛盾,學術界吸收了兩種調度方法的優點,基于劃分調度提出一種稱為半劃分調度的調度方法,該方法將全局調度與劃分調度結合,同時具有全局調度與劃分調度的行為特征。在系統進行任務調度時,大部分任務被預先劃分到一個固定的核心上運行,采用劃分調度策略;而剩余部分任務則采用全局調度策略,運行在多個核心上。

多核半劃分調度示意圖如圖3所示,半劃分調度中有兩種任務的就緒隊列,分別是全局就緒隊列和每核就緒隊列,當有 N 個處理器核時,共有 N+1 個就緒隊列。系統基于優先級的搶占式調度,處理器在調度時會選擇每核就緒隊列和全局就緒隊列中優先級最高的任務。這種策略可以緩解空閑處理器難以利用的問題、增強系統的負載均衡,同時在一定程度上彌補了全局調度與劃分調度的不足。

90dbaf5a-daa0-11ee-a297-92fbcf53809c.png

圖3 多核半劃分調度

2 基于核集的多核實時調度方法

由于半劃分調度基于全局調度與劃分調度的思想,系統在減少任務跨核調度的基礎上,還可以盡可能充分地利用空閑處理器。但該方法仍然容易出現負載不平衡的現象,例如在航空航天領域,由于確定性需求,需要將大部分任務與處理器核建立綁定關系,所以仍然可能由于任務分配的不均勻導致部分空閑處理器無法得到利用、浪費處理器資源。

此外,當全局就緒鏈中的任務較多時,處理器緩存命中率也會降低、影響系統性能。本文基于半劃分調度提出一種基于核集的嵌入式實時調度方法,為任務增加核集屬性。用戶在配置好任務的核集屬性后,如果設置任務的親和屬性,只能在指定核集范圍內設置;如果未設置親和屬性,則任務可全局調度,但此全局調度被限定為核集范圍,即局部全局調度。如果用戶沒有為任務配置核集,則默認核集為所有核。

基于核集的半劃分調度示意圖如圖4所示,任務A指定核集為[0,1],那么任務指定親和屬性只能是0核或者1核;如果不指定親和屬性,則任務進行全局調度,但調度范圍由最初的[0,1,2,3,…,N] 縮小為核集指定的[0,1],任務只能在0核或者1核上運行。

90e8b52e-daa0-11ee-a297-92fbcf53809c.png

圖4 基于核集的半劃分調度

在處理器核選擇后繼任務時,對全局就緒隊列多加一層篩選,將任務核集中包含當前處理器核(即滿足核集配置的任務)單獨組成一個鏈表。在滿足核集配置的任務鏈表中找到最高優先級任務,并與親和就緒隊列中最高優先級任務進行比較,將優先級高的任務調度到該處理器核上運行。處理器選擇任務過程如圖5所示。核2目前空閑或者需要重調度,首先按優先級從低到高依次遍歷全局就緒隊列:任務A核集不包含核2,不滿足核集配置,繼續遍歷;任務B核集包含核2,加入到滿足核集配置的任務鏈表;以此類推,繼續遍歷直到最高優先級任務X,核集不包含核2,第一輪遍歷完畢,篩選出全局就緒隊列中滿足核集配置要求的任務集合。然后確認任務B是滿足核集配置要 求的任務集合中優先級最高的任務,將任務B的優先級與核2親和隊列中最高優先級進行比較,兩者取較高優先級的任務在核2上運行。

90fe4d76-daa0-11ee-a297-92fbcf53809c.png

圖5 處理器選擇任務過程

3 基于核集的多核實時調度流程

基于核集的實時調度流程圖如圖 6 所示。

910b122c-daa0-11ee-a297-92fbcf53809c.png

圖6 基于核集的實時調度流程圖

步驟1:嵌入式系統通常在中斷服務程序結束、任務因等待資源阻塞、高優先級任務就緒等觸發調度事件發生后開始調度。

步驟2:獲取當前核號,用于獲取該核親和隊列以及篩選滿足核集配置要求的任務集合。

步驟3:遍歷該核親和就緒隊列,找到隊列上最高優先級任務PrivateHightestTask。

步驟4:遍歷全局就緒隊列,將滿足核集配置的任務篩選出來單獨組成一個任務集合。

步驟5:獲取步驟4中任務集合中優先級最高的任務 GlobalHightestTask。

步驟6:判斷 PriveteHightestTask 的優先級是否高于 GlobalHightestTask 的優先級,如果是,則繼續步驟7,否則繼續步驟8。

步驟7:將 GlobalHightestTask 置為處理器核調度的后繼任務,繼續步驟11。

步驟8:判斷PriveteHightestTask 的優先級是否等于 GlobalHightestTask 的優先級,如果是,則繼續步驟9,否則繼續步驟10。

步驟9:將 PrivateHightestTask 與 GlobalHightest Task中就緒時間長的任務置為處理器核調度的后繼任務,繼續步驟11。

步驟10:將 PrivateHightestTask 置為處理器核調度的后繼任務,繼續步驟11。

步驟11:處理器核調度確定的后繼任務運行。

步驟12:一次任務調度結束,等待下次調度事件觸發,進入下一次調度流程,執行步驟1。

4 結語

多核嵌入式系統中半劃分調度使用一個全局運行隊列來實現負載均衡,以此來提高劃分調度的處理器利用率。本文針對半劃分調度方法存在的多核負載不均衡問題,提出了改進的基于核集的調度算法,與原來的半劃分調度算法相比,理論上該方法在不破壞原有系統調度的前提下,改善了半劃分調度算法中處理器負載不均衡的問題,同時能夠保證很好的實時性,也可為未來多核嵌入式容器運行配置提供支撐。目前已經在 FT1500-A 上完成了開發測試,任務可正常運行,且可配置任務核集屬性,任務只可在指定核集范圍內運行,下一步工作將通過實驗驗證該調度算法在負載均衡方面是否優于原來的半劃分調度。




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19259

    瀏覽量

    229653
  • 嵌入式系統
    +關注

    關注

    41

    文章

    3587

    瀏覽量

    129436
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10854

    瀏覽量

    211587
  • 負載均衡
    +關注

    關注

    0

    文章

    110

    瀏覽量

    12364

原文標題:一種基于核集的多核嵌入式實時調度方法

文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    嵌入式arm調試方法介紹

    ( IDE )般來說是必不可少的,至于嵌入式實時操作系統、評估板等其他開發工具則可以根據應用軟件規模和開發計劃選用。 Arm處理器 嵌入式開發
    發表于 05-11 16:53

    【好書分享】嵌入式實時操作系統μCOS-II原理及應用

    μC\OS-Ⅱ是個源碼開放的嵌入式實時操作系 統的內核。《嵌入式實時操作系統μC\OS-Ⅱ原理及 應用(第3版)》詳細地
    發表于 06-30 14:24

    怎么設計處理器的嵌入式設計平臺?

    編程接口共用或并存,可能包含部分可編程模擬電路,單芯片、低功耗。本文主要研究的是應用嵌入式系統開發的軟硬件協同設計方法來實現處理器
    發表于 03-13 07:03

    一種基于嵌入式實時內核ARTXl66的電子差速算法

    本文介紹一種基于嵌入式實時內核ARTXl66的電子差速算法
    發表于 05-13 06:46

    介紹一種嵌入式系統圖形用戶界面的設計方法

    本文以車載影音導航系統為例,介紹一種嵌入式系統圖形用戶界面的設計方法
    發表于 05-14 06:48

    嵌入式Linux操作系統調度算法的相關資料分享

    的改造。主要的方法有:對內核的改造,如雙內核途徑和搶占內核途徑,細化內核的時鐘粒度。另一種改造的主要途徑是內核的調度策略。進程調度算法優劣決定系統的
    發表于 11-05 08:15

    介紹一種嵌入式系統仿真方法

    /計數器等功能。本文介紹一種嵌入式系統仿真方法,通過一種特殊設計的指令仿真器ISS將軟件調試器
    發表于 11-08 06:16

    嵌入式實時系統多核負載均衡調度架構的相關資料推薦

    ,但高負載場景無法實時優化多核負載,造成任務延遲。本文介紹一種多核實時負載均衡的調度架構,均衡
    發表于 12-14 07:25

    嵌入式Linux下一種新的觸摸屏定標方法的研究

    介紹一種新型基于嵌入式Linux平臺的觸摸屏定標方法。首先對嵌入式系統觸摸屏接口電路進行了簡單介紹
    發表于 04-24 10:25 ?17次下載

    一種應用于多媒體通信的實時調度算法

    隨著網絡技術和計算技術的發展,多媒體通信作為一種重要的應用領域,獲得了越來越多的應用,而其中重要的個研究主題就是實時調度的效率。傳統的實時調度算法有著良好
    發表于 05-11 20:15 ?19次下載

    系統實時事件驅動和時間驅動相結合的調度方法

    系統事件驅動和時間驅動相結合的實時調度方法有效地解決了虛擬化操作系統在嵌入式系統應用中帶來的實時性問題。
    發表于 02-29 10:42 ?3405次閱讀
    系統<b class='flag-5'>實時</b>事件驅動和時間驅動相結合的<b class='flag-5'>調度</b><b class='flag-5'>方法</b>

    一種基于分組的多核嵌入式實時調度算法

    一種基于分組的多核嵌入式實時調度算法_康鵬
    發表于 01-07 21:39 ?0次下載

    嵌入式多核處理器任務調度研究

    針對多核處理器在調度多個任務時效率不高的問題,提出了一種基于粒子群優化算法的嵌入式多核多線程系統任務調度
    發表于 01-17 17:49 ?1次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>多核</b>處理器任務<b class='flag-5'>調度</b>研究

    一種實時嵌入式多任務微內核的分析與改進

    一種實時嵌入式多任務微內核的分析與改進(嵌入式開發系統)-一種實時
    發表于 07-30 13:49 ?11次下載
    <b class='flag-5'>一種</b><b class='flag-5'>實時</b><b class='flag-5'>嵌入式</b>多任務微內核的分析與改進

    linux嵌入式系統算法,嵌入式Linux操作系統調度算法研究

    的改造。主要的方法有:對內核的改造,如雙內核途徑和搶占內核途徑,細化內核的時鐘粒度。另一種改造的主要途徑是內核的調度策略。進程調度算法優劣決定系統的
    發表于 11-02 10:36 ?15次下載
    linux<b class='flag-5'>嵌入式</b>系統算法,<b class='flag-5'>嵌入式</b>Linux操作系統<b class='flag-5'>調度</b>算法研究
    主站蜘蛛池模板: 最新中文字幕在线视频| 伊人久久精品AV无码一区| 无码人妻少妇色欲AV一区二区| 色综合五月激情综合色一区 | 久久内在线视频精品mp4| 牢记永久免费网址| 欧美特级午夜一区二区三区| 日本学生VIDEOVIDEOS更新| 乌克兰内射私拍| 伊人影院综合网| tube日本护士| 国产精品线路一线路二| 久久国产露脸老熟女熟69| 女人被躁到高潮嗷嗷叫免费| 色老汉网址导航| 亚洲男同tv| 99久久99久久免费精品蜜桃| 国产91网站在线观看免费| 精品一产品大全| 欧美人成在线观看ccc36| 无限资源日本2019版免费| 诱人的女邻居9中文观看| yy4408午夜场理论片| 国产一区内射最近更新| 免费在线观看一区| 午夜国产精品视频| 97超级碰碰人妻中文字幕| 国产成人久久精品激情| 久久热这里面只有精品| 色欲狠狠躁天天躁无码中文字幕 | 欧美阿v在线免播播放| 王晶三级作品| 4k岛国精品午夜高清在线观看| 国产AV午夜精品一区二区入口| 久久99国产精品一区二区| 日本调教网站| 伊人大香线蕉影院在线播放| 东北嫖妓对白粗口| 六级黄色片| 亚洲国产cao| 草莓视频在线看免费高清观看|