在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

如何基于時間片論法的任務調度模式充分利用MCU的資源

strongerHuang ? 來源:大橙子瘋嵌入式 ? 作者:大橙子瘋嵌入式 ? 2022-12-14 09:52 ? 次閱讀

本文介紹如何基于時間片論法的任務調度模式充分利用MCU的資源,姑且先稱這種方式為時間片差分調度法。

充分利用MCU的資源指的是在不影響原有的函數調度情況下合理進行分配,避免MCU大部分時間處于空跑狀態(即大部分時間沒有調度任何的功能函數,只是在不停地判斷時間狀態,從而造成的資源浪費),同時提高每個任務的調度周期的命中率(按時準點執行)

背景

時間片論法不比操作系統,操作系統可以通過任務優先級搶占當前正在執行的低優先級任務,或者高優先級任務主動睡眠釋放MCU資源以便低優先級的任務可以正常執行;時間片論法必須等待當前任務執行完成后才能執行下一個任務(中斷除外)。


因此,由于時間片論法的特性,很難保證某些任務能夠及時得到調度運行,特別是所需要的調度任務多的情況下,常常出現不能及時調度的問題(雖然整體調度周期不變),從而影響所需要的功能,常見的做法可能通過定時中斷觸發的方式去執行,可是碰到一些任務函數執行時間稍微長的就會影響中斷的響應等。


可以看下面的函數調度時長圖,每個刻度為200us(以下稱節拍),調度單位為1ms,只以200us以上的任務舉例,方便進行理解

152885c0-7b4e-11ed-8abf-dac502259ad0.png

從上述圖中可知以下信息

圖中一共有五個任務函數,每個任務函數的執行時間不定

任務1(黃色)周期為5ms

任務2(紅色)周期為6ms

任務5(紫色)周期為5ms

任務4(藍色)周期為12ms

任務5(綠色)周期為15ms

同一時刻觸發任務調度的執行時的順序(調度函數的順序即可任務默認優先級):1>2>3>4>5

第25ms時任務1的調度慢了一個節拍,原因是任務2和4的調度總時長超過了調度單位時長

除了任務1大部分時間都能及時被調度,其他任務并不能被及時調度,雖然周期不變,但命中率不高(甚至等于0)

其中存在周期性的幾個調度單位大部分時間處于空跑狀態

…等其他仔細觀察的可知信息,這里就不多說了

從獲取的信息可知,大部分任務雖然整體周期沒變,但是幾乎很少有低優先級的任務有較高的命中率,這樣就導致某些功能需要較高的命中率同時執行時間相對較長(不能放在中斷中的任務函數)就不能正常工作。

如何優化

在優化之前,首先看下面這個有一定規律的函數調度時長圖

153f5660-7b4e-11ed-8abf-dac502259ad0.png

還是五個任務,而規律就是函數任務公約數=最小調度周期任務,即5ms(假設小于5ms的任務大都執行時間非常短,在此可忽略不計)

任務1(黃色)周期為5ms

任務2(紅色)周期為10ms

任務5(紫色)周期為20ms

任務4(藍色)周期為10ms

任務5(綠色)周期為20ms

圖中所展示的任務調度命中率也不高,也存在周期性的幾個調度單位大部分時間處于空跑狀態

看一下優化前后的對比圖,雖然還是存在大部分時間處于空跑狀態,但是命中率提高到了100%

只要保證每個任務函數耗時小于調度單位,那么就能做到命中率 100%

184bbe7a-7b4e-11ed-8abf-dac502259ad0.png

如何實現的?
從優化后的圖中可以了解到,第一個時刻調度的時候只有任務1,第二個時間調度只有任務2,以此類推,就可以在一定程度上避開同一時刻多個任務需要同時等待調度,從而引發的擁堵。

可以通過每個任務計時器的倒計時初值進行調整,從而達到每個時間調度只運行一個任務的目的,提高任務的命中率。

那么接下來按照上面提到的規律去優化剛開始的那個,主要有兩點:

在可接受范圍內調整任務的周期,盡量保證任務函數任務公約數=最小調度周期任務

可以理解稱任務公約數等于多少就代表可以在初值上類推多少個任務進行錯開初次執行;可以忽略部分函數耗時特別短的任務

調整每個任務倒計時器的初值,盡量錯開擁堵時刻

任務多的情況下只能夠盡量避免,從而提高命中率,通過每個任務調度周期和執行時長進行推算,得到每個任務的最佳的初值

根據以上兩點對上述調度任務進行優化如下:

五個任務函數在可接受范圍內調整任務周期后,同時調整初值
- 任務1(黃色)周期為5ms
- 任務2(紅色)周期為5ms
- 任務5(紫色)周期為5ms
- 任務4(藍色)周期為10ms
- 任務5(綠色)周期為15ms

得到對比圖:

185b6fa0-7b4e-11ed-8abf-dac502259ad0.png

此次優化將充分地利用了每個時間片的資源,雖然某一段時間內的空跑時間總和一樣,但是實際上將空跑的時間進行了分散,提高了資源的使用率,從而讓每個任務的命中率提高到100%。

審核編輯 :李倩

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

    關注

    146

    文章

    17425

    瀏覽量

    353842
  • 函數
    +關注

    關注

    3

    文章

    4351

    瀏覽量

    63222

原文標題:時間片論法-優化方案

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

收藏 人收藏

    評論

    相關推薦

    如何利用MES系統進行產能分析呢?

    利用MES系統進行產能分析是一個涉及數據收集、處理、分析和結果呈現的全過程。對生產過程加以監控,充分利用MES數據采集分析,實現監控生產全階段,消除生產過程不可控問題。
    的頭像 發表于 02-21 12:10 ?100次閱讀
    如何<b class='flag-5'>利用</b>MES系統進行產能分析呢?

    Amphitrite借助NVIDIA Earth-2平臺優化船舶航線

    作為 NVIDIA 初創加速計劃的成員,這家初創公司幫助船舶充分利用洋流和 AI 的力量,通過 NVIDIA Earth-2 平臺縮短航行時間并減少碳排放。
    的頭像 發表于 02-14 10:04 ?143次閱讀

    充分利用Spectrum AWG運行模式:序列模式引領波形輸出新高度

    任意波形發生器(AWG)的一個重要功能點是,它們可以生成幾乎無限數量種的波形形狀,而AWG的運行模式控制了這些波形輸出的方式。 在這篇應用筆記中,我們將探討如何高效利用TS-M4i.66xx系列
    的頭像 發表于 12-03 11:10 ?335次閱讀
    <b class='flag-5'>充分利用</b>Spectrum AWG運行<b class='flag-5'>模式</b>:序列<b class='flag-5'>模式</b>引領波形輸出新高度

    安川電機充分利用NVIDIA Isaac推進自動化

    豐田、安川電機、7&I 控股和 Rikei 引入數字孿生與工業 AI,掀起新一輪數字化浪潮。
    的頭像 發表于 11-19 14:19 ?375次閱讀

    INA199如何解讀和利用電流感應放大器的輸出擺幅規格,以便我能夠充分利用電流測量結果?

    INA199如何解讀和利用電流感應放大器的輸出擺幅規格,以便我能夠充分利用電流測量結果?
    發表于 08-07 07:07

    如何利用AI進行提升自我呢?

    利用AI進行學習是一個高效且富有創新性的過程。以下是一些建議,幫助你充分利用AI進行學習: 選擇適合的AI學習工具 : 深度學習框架 :如飛槳(PaddlePaddle)框架,它提供了豐富的API
    的頭像 發表于 07-19 10:46 ?836次閱讀

    異構混訓整合不同架構芯片資源,提高算力利用

    的解決方案。通過混合使用多種異構芯片,可以充分利用不同芯片的優勢,提高算力利用率,降低算力成本,并推動AI技術的廣泛應用。 ? 異構混訓能夠整合不同架構芯片資源 ? 在2024年世界人工智能大會AI基礎設施論壇上,無問芯穹聯合創
    的頭像 發表于 07-18 00:11 ?3713次閱讀

    鴻蒙開發接口資源調度:【@ohos.workScheduler (延遲任務調度)】

    開發者在開發應用時,通過調用延遲任務注冊接口,注冊對實時性要求不高的延遲任務,該任務默認由系統安排,在系統空閑時根據性能、功耗、熱等情況進行調度執行。
    的頭像 發表于 06-04 10:01 ?1052次閱讀
    鴻蒙開發接口<b class='flag-5'>資源</b><b class='flag-5'>調度</b>:【@ohos.workScheduler (延遲<b class='flag-5'>任務</b><b class='flag-5'>調度</b>)】

    FPB-R9A02G021 RISC-V MCU快速原型設計板介紹

    MCU則面向多個終端市場而設計,包括物聯網、消費電子產品、醫療設備、小家電和工業系統等。與現有通用MCU類似,設計人員可以充分利用瑞薩及其廣泛工具鏈合作伙伴網絡為R9A02G021搭建的全面開發環境,從而
    發表于 05-28 07:36

    請問CMSIS-RTOS RTX的任務調度鎖在哪里?

    請問一下,CMSIS-RTOS RTX的任務調度鎖在哪里?謝謝!
    發表于 05-13 08:28

    淺析FreeRTOS任務調度器的三種調度算法和應用

    FreeRTOS在MCU領域應用非常廣泛,今天就給大家講解一下FreeRTOS調度器中的三種調度算法,以及在瑞薩RZ/T2L MPU中的應用。
    的頭像 發表于 05-10 14:02 ?8042次閱讀
    淺析FreeRTOS<b class='flag-5'>任務</b><b class='flag-5'>調度</b>器的三種<b class='flag-5'>調度</b>算法和應用

    打造優質戶用逆變器的關鍵步驟與方法

    固德威逆變器型號齊全,能滿足不同屋頂和不同容配比的設計,不浪費一屋頂,且能充分利用逆變器。
    的頭像 發表于 04-26 09:46 ?593次閱讀
    打造優質戶用逆變器的關鍵步驟與方法

    STM32F103 FreeRTOS任務調度異常的原因?

    ) { vTaskDelay(500); //延時函數(任務調度) printf(\"Task1rn\");//串口打印 } } void Task2_Task(void
    發表于 04-16 06:24

    什么是時間輪轉調度時間輪轉調度算法基本原理

    進程切換時間一定的情況下,如果時間片長度設定的越小時,這種浪費更明顯。所以,時間片長度與CPU利用率是一對不可調和的矛盾,必須處理好它們之間的關系。
    的頭像 發表于 03-22 14:54 ?3863次閱讀

    FreeRTOS任務調度器的三種調度算法講解(下)

    配置如下時,調度算法就會變成不帶時間的搶占式調度
    的頭像 發表于 03-21 13:46 ?3442次閱讀
    FreeRTOS<b class='flag-5'>任務</b><b class='flag-5'>調度</b>器的三種<b class='flag-5'>調度</b>算法講解(下)
    主站蜘蛛池模板: 日本一区二区在线不卡 | 51xtv成人影院 | 天天干天天操天天爽 | 2023天天操 | 大量国产后进翘臀视频 | 亚洲精品视频专区 | 四虎最新入口 | 国产精品爱久久久久久久三级 | xxx日本69hd| 欧美精品一区在线看 | 免费可以看黄的视频 s色 | 亚洲一级视频在线观看 | 99综合在线| 色香淫欲| 天天干夜夜操视频 | 奇米影视四色首页手机在线 | 又粗又长又大又黄的日本视频 | 国产综合视频在线观看 | 久草色在线 | 久久久免费观看 | 四虎4545www国产精品 | 久久夜色精品国产飘飘 | 久久国产精品永久免费网站 | 成人av.com| 性瘾高h姚蕊全文免费阅读 性做久久久久 | www.五月婷婷 | 影院成人区精品一区二区婷婷丽春院影视 | 特黄特色大片免费视频大全 | 午夜在线观看免费观看大全 | 午夜在线观看完整高清免费 | 亚洲第一黄色网址 | 日本在线视频一区二区 | 亚洲综合久久综合激情久久 | 男女一区二区三区免费 | 性夜影院爽黄a爽在线看香蕉 | 成人夜夜嗨 | 四虎hu | 男女吃奶一进一出动态图 | 日本三级欧美三级香港黄 | 亚洲特黄大黄一级毛片 | 在线黄色免费网站 |