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

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

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

3天內不再提示

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

瑞薩MCU小百科 ? 來源:瑞薩嵌入式小百科 ? 2024-03-21 13:43 ? 次閱讀

瑞薩RZ/T2L MPU

RZ/T2L是一款高性能MPU,可通過EtherCAT實現高速、高精度的實時控制。RZ/T2L搭載最大頻率為800MHz的Arm Cortex-R52內核以及與CPU緊密耦合的大容量內存(576KB),可以降低使用高速緩存存儲器時出現的執行時間波動,并提供確定性與高速響應處理。

RZ/T2L在CPU內核、外設功能和LLPP(低延時外設端口)總線等方面具備與RZ/T2M無縫連接的硬件架構,可用于AC servo等更高性能的控制系統。此外,RZ/T2L提供了與瑞薩MPU和MCU可兼容、可擴展的軟件平臺。它使客戶可以利用自己的軟件資產進行新機型的開發。

4a88dcba-e740-11ee-a297-92fbcf53809c.png

RZ/T2L產品框圖

1.任務狀態和事件的概述

實際正在運行(使用處理時間)的任務處于運行態。在單個核心處理器上,在任何時候都只能有一個任務處于運行態。

沒有實際運行,但既不處于阻塞態不處于掛起態的任務就是處于就緒態。

處于就緒態的任務可被調度器選擇,然后進入運行態。調度程序會始終選擇最高優先級的就緒態任務進入運行態。

任務可以在阻塞態下等待事件,并在事件發生時自動移回就緒態。

時間事件發生在特定的時間,例如當阻塞時間過期時,通常用于實現周期性或超時行為。當任務或中斷服務例程使用任務通知、隊列、事件組或多種類型的信號量之一發送信息時,就會發生同步事件。它們通常用于需要同步的情況,例如數據同步。

2.配置調度算法

調度算法決定了調度器將哪個就緒態任務轉換到運行態。

可以使用configUSE_PREEMPTION和configUSE_TIME_SLICING配置常量來更改算法。這兩個常量都在FreeRTOSConfig.h中定義。

還有個配置常數configUSE_TICKLESS_IDLE也會影響調度算法,因為使用它會導致tick中斷在很長一段時間內被完全關閉。configUSE_TICKLESS_IDLE是一個高級選項,專門用于必須最小化功耗的應用程序。configUSE_TICKLESS_IDLE在之后解說。

對于相同優先級的任務,FreeRTOS調度器依次選中相同優先級的任務進入運行態。這種輪流策略被稱為‘Round Robin Scheduling’

‘Round Robin Scheduling’算法并不能保證同等優先級的任務之間運行相同的時間,只能保證同等優先級的“就緒”任務會依次進入“運行”態。

2.1

基于時間片的搶占式調度

如果按照如下配置:

configUSE_PREEMPTION 1

configUSE_TIME_SLICING 1

FreeRTOS調度器使用一種稱為“基于時間片的固定優先級搶占式調度”的調度算法,這是大多數小型RTOS應用程序使用的調度算法。

固定優先級

被描述為“固定優先級”的調度算法不會改變分配給被調度任務的優先級,但也不會阻止任務本身改變自己的優先級或其他任務的優先級。

搶占式調度

在優先級高于運行態任務的任務進入就緒態時,調度器立即讓這個高優先級的任務“搶占”運行態任務。被搶占意味著任務移出運行態并進入就緒態,并不是因為任務自己主動讓出或者阻塞。

時間片

時間片用于在具有相同優先級的任務之間共享處理時間,即使任務沒有顯式地讓步或進入阻塞狀態。使用“時間片”的調度算法將在每個時間片結束時選擇一個新任務進入運行狀態,如果有其他與運行任務具有相同優先級的就緒狀態任務。一個時間片等于兩個RTOS tick中斷之間的時間。

4aa564de-e740-11ee-a297-92fbcf53809c.png

上圖演示了使用“基于時間片的固定優先級搶占式調度”算法搶占調度任務的調度過程。

task1是最高優先級的事件驅動任務,task2是中等優先級的周期性任務,task3是最低優先級的事件驅動任務,Idle task是空閑任務。

task1周期性運行,阻塞時,空閑任務就會運行,task3的事件到達就會搶占空閑任務,task3運行期間,如果task2的周期到了,因為task2優先級高就會搶占task3,task2運行完了再接著運行task2,task2運行期間,由于task1優先級高,一旦task1等待的事件到了就會搶占task2。

有相同優先級任務的情況:

4ab7b210-e740-11ee-a297-92fbcf53809c.png

task1是優先級最高的事件驅動任務,task2是和Idle task優先級相同的持續處理型任務。

task2和空閑任務就會輪流運行,而task1則可以搶占task2和空閑任務。

假如空閑任務里其實沒做什么事情,我們想讓和空閑任務相同優先級的Task2有更多的運行時間就可以配置configIDLE_SHOULD_YIELD。

如果configIDLE_SHOULD_YIELD設置為0,那么空閑任務將在整個時間片中保持運行狀態,除非它被更高優先級的任務搶占。

如果configIDLE_SHOULD_YIELD設置為1,如果有其他空閑優先級任務處于就緒狀態,那么空閑任務將主動讓出運行時間。

4ac6582e-e740-11ee-a297-92fbcf53809c.png



審核編輯:劉清

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

    關注

    38

    文章

    7518

    瀏覽量

    164074
  • ARM處理器
    +關注

    關注

    6

    文章

    361

    瀏覽量

    41826
  • FreeRTOS
    +關注

    關注

    12

    文章

    484

    瀏覽量

    62274
  • ethercat
    +關注

    關注

    18

    文章

    719

    瀏覽量

    38765
  • 調度器
    +關注

    關注

    0

    文章

    98

    瀏覽量

    5262
收藏 人收藏

    評論

    相關推薦

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

    配置如下時,調度算法就會變成不帶時間片的搶占式調度
    的頭像 發表于 03-21 13:46 ?3037次閱讀
    <b class='flag-5'>FreeRTOS</b><b class='flag-5'>任務</b><b class='flag-5'>調度</b><b class='flag-5'>器</b>的<b class='flag-5'>三種</b><b class='flag-5'>調度</b><b class='flag-5'>算法</b><b class='flag-5'>講解</b>(下)

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

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

    改進的SEDF調度算法

    引入一比較機制來執行多處理間的負載平衡.當VCPU調度時,將就緒VCPU遷移到總運行時間最少的處理.仿真實驗結果表明:IEDF
    發表于 04-24 10:03

    轉:第14章 任務調度—搶占式,時間片和合作式

    調度方式FreeRTOS操作系統支持三種調度方式:搶占式調度,時間片調度和合作式
    發表于 08-30 09:55

    轉第16章 FreeRTOS調度鎖,任務鎖和中斷鎖

    任務鎖函數,但是使用FreeRTOS現有的功能有兩實現方法:(1)通過給調度加鎖實現利用FreeR
    發表于 09-01 07:45

    FreeRTOS如何使用delay作為系統延時、任務調度

    請教一個問題,最近在學習使用FreeRTOS,想像原子一樣在delay.c里添加RTOS的系統支持,即使用tick時鐘作延時。現在有幾個問題:1、在啟動任務調度前,如果調用了dela
    發表于 06-10 04:37

    調度的原理及其任務調度代碼實現

    一、介紹調度是常用的一編程框架,也是操作系統的拆分多任務的核心,比如單片機的裸機程序框架,網絡協議棧的框架如can網關、485網關等等,使用場合比較多,是做穩定產品比較常用的編程技
    發表于 02-17 07:07

    基于實數編碼免疫算法的分布式任務調度

    任務調度問題是一個NP難題,其算法是一個重要研究方向。該文通過對任務調度模型及已有免疫算法進行研
    發表于 04-08 09:00 ?15次下載

    網格任務調度算法研究

    網格任務調度算法是影響網格成功與否的關鍵技術之一。本文總結了網格計算系統的體系結構和特征,分析了網格任務調度
    發表于 08-14 10:27 ?10次下載

    任務閾值調度算法

    針對當前云任務調度算法在密碼云環境中無法實現任務實時處理的問題,提出一基于滾動優化窗口的實時閾值調度
    發表于 11-24 17:08 ?5次下載
    云<b class='flag-5'>任務</b>閾值<b class='flag-5'>調度</b><b class='flag-5'>算法</b>

    基于云計算遺傳算法的多任務調度算法

    任務調度是云計算中的一個關鍵問題,遺傳算法是一能較好解決優化問題的算法。本論文針對遺傳算法
    發表于 12-07 15:16 ?0次下載

    基于改進GEP的局部云任務調度算法

    針對云計算中一些現有的基于批量調度模式和進化算法的動態云任務調度算法計算量較大,計算時間成本較高的現象,提出了一
    發表于 01-18 13:50 ?0次下載
    基于改進GEP的局部云<b class='flag-5'>任務</b><b class='flag-5'>調度</b><b class='flag-5'>算法</b>

    異構多核處理任務調度算法

    任務調度響應實時性方面表現優異,但卻不適用于異構多核處理環境。為此,提出一高實時性任務調度
    發表于 02-07 11:07 ?2次下載

    FreeRTOS時間片進行任務調度?

    CPU的使用權,讓擁有同優先級的下一個任務運行, 至于下一個要運行哪個任務? 由時間片來調度,時間片調度發生在滴答定時的中斷服務函數中 。
    發表于 12-23 20:02 ?0次下載
    <b class='flag-5'>FreeRTOS</b>時間片進行<b class='flag-5'>任務</b><b class='flag-5'>調度</b>?

    FreeRTOS調度中的三種調度算法實踐(

    在優先級高于運行態任務任務進入就緒態時,調度立即讓這個高優先級的任務“搶占”運行態任務。被搶
    發表于 03-21 13:45 ?528次閱讀
    <b class='flag-5'>FreeRTOS</b><b class='flag-5'>調度</b><b class='flag-5'>器</b>中的<b class='flag-5'>三種</b><b class='flag-5'>調度</b><b class='flag-5'>算法</b>實踐(<b class='flag-5'>上</b>)
    主站蜘蛛池模板: 日韩一区二区视频| 四虎影视在线影院在线观看| 人色网| 欧美乱妇高清无乱码| 一区二区三| 男女性接交无遮挡免费看视频| 国产成人精品高清免费| 亚洲伊人久久大香线蕉结合| 亚洲bt天堂| 日本黄色大片免费看| 农村妇女高清毛片一级| 韩国三级hd| 一级免费看片| 免费观看一级一片| tube亚洲高清老少配| 又粗又大撑满了好爽| 最近2018年中文字幕在线| 成年ssswww中国女人| 2021国内精品久久久久影院| 手机看片日韩永久福利盒子| 国产精品天天看| 亚洲免费国产| 亚偷熟乱区视频在线观看| 日本免费a级片| 国产欧美一区二区三区观看 | 91成人午夜性a一级毛片| 天天射天天射天天射| 国产伦精品一区二区三区高清| 额去鲁97在线观看视频| 国产三级观看久久| 色cccwww| 国产精品久久国产三级国不卡顿 | 农村三级毛片| 69成人免费视频| 国产精品福利一区二区亚瑟| 亚洲一区二区高清| 午夜欧美电影| 久久99爰这里有精品国产| 精品伊人久久大香线蕉网站| 伊人福利视频| 在线观看视频在线观看|