国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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
    +關注

    關注

    147

    文章

    18925

    瀏覽量

    398205
  • 函數
    +關注

    關注

    3

    文章

    4417

    瀏覽量

    67513

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    AN5289 使用 STM32WB 系列微控制器構建射頻應用筆記

    本文檔一步一步地指導設計人員基于 STM32WB 系列微控制器構建特定 Bluetooth低功耗或802.15.4 應用。它匯集了最重要的信息,并且列出了需要處理的方面。為了充分利用本文檔中的信息
    發表于 01-09 14:13 ?0次下載

    一文說透了如何實現單片機的多任務并發!

    任務并發。 一、任務調度 任務調度是多任務并發中一個非常重要的概念。它指的是如何在系統中組織和
    發表于 01-06 06:46

    基于大模型的發射任務調度與過程保障分系統平臺的應用與未來發展

    ? ? 基于大模型的發射任務調度與過程保障分系統航天智能化升級核心方案 ? ?北京華盛恒輝大模型的發射任務調度與過程保障分系統,是航天領域智能化升級的核心支撐。該系統憑借多源數據融合、
    的頭像 發表于 12-24 10:36 ?261次閱讀

    深入Linux內核:進程調度的核心邏輯與實現細節

    在Linux系統中,進程調度就像一位精明的“CPU管理員”——它決定著哪個進程能優先使用CPU,多久切換一次進程,如何平衡系統響應速度與資源利用率。小到桌面應用的流暢點擊,大到服務器的多任務
    的頭像 發表于 12-24 07:05 ?4307次閱讀
    深入Linux內核:進程<b class='flag-5'>調度</b>的核心邏輯與實現細節

    大模型驅動的發射任務智能調度分系統軟件平臺的應用與未來發展

    大模型驅動的發射任務智能調度分系統平臺 ? ?作為航天智能化轉型的關鍵支撐,該平臺融合多源數據、動態資源調度與大模型智能決策能力,顯著提升發射任務
    的頭像 發表于 12-19 14:50 ?303次閱讀

    嵌入式基礎知識-系統調度

    等待的事件發生。 4、RTOS任務切換 RTOS(Real Time Operating System),實時操作系統,指當外界事件或數據產生時,能夠接受并以足夠快的速度予以處理,調度一切可利用
    發表于 12-16 08:15

    后勤資源大模型智能調度系統:功能特點與平臺架構解析

    配置與高效利用,全面提升后勤保障響應速度與能力,具體解析如下: ? ?應用案例 ? ?目前,已有多個后勤資源大模型智能調度系統在實際應用中取得了顯著成效。例如,北京華盛恒輝和北京五木恒潤后勤
    的頭像 發表于 12-15 16:35 ?310次閱讀

    如何在 RTOS 中處理微控制器的低功耗特性

    ,更詳細的設計,需要查閱所使用的 RTOS 相關文檔資料。RTOS 一般采用基于時間輪轉的搶占式任務調度機制,在實際應用過程中,一般的低功耗設計思路如下: 當 Idle
    發表于 12-12 07:07

    在多任務系統中,如何平衡任務調度以防止因高負載導致的再次進入低功耗模式的延遲?

    在多任務系統中,如何平衡任務調度以防止因高負載導致的再次進入低功耗模式的延遲?
    發表于 12-04 06:37

    利用DMA如何降低MCU功耗?

    利用DMA(直接內存訪問)降低MCU功耗的核心在于最小化CPU介入,通過硬件自動完成數據傳輸任務,使CPU能盡可能長時間處于休眠狀態。 CPU休眠
    發表于 11-18 07:34

    freertos關閉任務調度的方法

    #include \"FreeRTOS.h\" #include \"task.h\" /* 關閉任務調度 */ void
    發表于 11-17 06:47

    通過優化代碼來提高MCU運行效率

    。 內存訪問優化 充分利用緩存:如果MCU有Cache,盡量保證代碼和數據的局部性,即讓相關的數據在內存中連續存放。 避免內存碎片:在動態內存分配受限的系統中,盡量使用靜態分配。 對齊訪問:保證數據在內
    發表于 11-12 08:21

    FreeRTOS任務調度及優先級問題

    大家好,最近本人在學習FreeRTOS ,之前有過一些裸機開發的經驗,目前知道了FreeRTOS的任務是基于時間輪轉來調度,也就是知道了任務
    發表于 11-06 02:18

    充分利用小型化布線系統,實現空間受限型設計

    作者:Kenton Williston 投稿人:DigiKey 北美編輯 隨著電子系統體積的不斷縮小和功能越來越密集,設計人員面臨著確??煽炕ミB的挑戰。這一點在工業、醫療、軍事以及航空航天領域尤為突出。在這些領域,不僅要求連接器結構緊湊,而且能夠承受振動、熱循環和其他應力。為應對這些挑戰,設計人員需要那種兼具可靠性和空間效率的緊湊型互連解決方案。 本文將探討此類互連的關鍵要求,包括端子密度、可靠的配接機制、耐熱性以及信號和功率大小。然
    的頭像 發表于 10-04 18:20 ?1532次閱讀
    <b class='flag-5'>充分利用</b>小型化布線系統,實現空間受限型設計

    利用MCU/SoC的工作范圍實現低功耗

    想進一步降低功耗!但又不想犧牲產品性能……特瑞仕針對此問題的解決方案是“充分利用MCU/SoC的工作范圍進行功耗優化”。
    的頭像 發表于 08-04 11:22 ?1151次閱讀
    <b class='flag-5'>利用</b><b class='flag-5'>MCU</b>/SoC的工作范圍實現低功耗