91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內不再提示

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

strongerHuang ? 來源:大橙子瘋嵌入式 ? 作者:大橙子瘋嵌入式 ? 2022-12-14 09:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

背景

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


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


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

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

從上述圖中可知以下信息:

圖中一共有五個任務函數(shù),每個任務函數(shù)的執(zhí)行時間不定

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

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

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

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

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

同一時刻觸發(fā)任務調度的執(zhí)行時的順序(調度函數(shù)的順序即可任務默認優(yōu)先級):1>2>3>4>5

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

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

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

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

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

如何優(yōu)化

在優(yōu)化之前,首先看下面這個有一定規(guī)律的函數(shù)調度時長圖

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

根據(jù)以上兩點對上述調度任務進行優(yōu)化如下:

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

得到對比圖:

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

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

審核編輯 :李倩

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

    關注

    147

    文章

    18948

    瀏覽量

    398809
  • 函數(shù)
    +關注

    關注

    3

    文章

    4417

    瀏覽量

    67568

原文標題:時間片論法-優(yōu)化方案

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    一文說透了如何實現(xiàn)單片機的多任務并發(fā)!

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

    基于大模型的發(fā)射任務調度與過程保障分系統(tǒng)平臺的應用與未來發(fā)展

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

    深入Linux內核:進程調度的核心邏輯與實現(xiàn)細節(jié)

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

    大模型驅動的發(fā)射任務智能調度分系統(tǒng)軟件平臺的應用與未來發(fā)展

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

    嵌入式基礎知識-系統(tǒng)調度

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

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

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

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

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

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

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

    利用DMA如何降低MCU功耗?

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

    freertos關閉任務調度的方法

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

    通過優(yōu)化代碼來提高MCU運行效率

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

    FreeRTOS任務調度及優(yōu)先級問題

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

    充分利用小型化布線系統(tǒng),實現(xiàn)空間受限型設計

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

    利用MCU/SoC的工作范圍實現(xiàn)低功耗

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