<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

RTOS應用中的調度策略

strongerHuang ? 來源:麥克泰技術 ? 2023-05-29 09:19 ? 次閱讀

從裸機(前后臺架構)的軟件開發過渡到使用實時操作系統(RTOS)可能是一項困難的工作。 但使用RTOS有許多優勢,例如簡化應用集成,支持任務搶占調度,當開發人員使用復雜的32位微控制器,且可以獲取足夠的Flash和RAM空間時,使用RTOS開始變得有意義。 許多32位應用程序需要使用USB、TCP/IP和文件系統,這對于裸機應用程序的開發是非常困難的,且大多數第三方中間件被設計為與RTOS無縫集成。

1

時間片輪詢調度

前后臺系統實現通?;谳喸冋{度技術,它是一種很自然的軟件編寫方式,只需向超級循環中添加新代碼,相當于增加了一個新的任務。

RTOS中的輪詢調度策略,是允許多個任務可以分配同一個優先級別。調度程序基于時鐘監控任務時間,任務處于相關優先級,按照先進先出的原則執行分配到的時間片,時間到了,即使當前任務還沒有完成,任務也將CPU時間傳遞給下一個任務。在下一個分配到的時間段內,該任務將從它停止的位置繼續執行。

fa1365de-fdb6-11ed-90ce-dac502259ad0.png

常用的RTOS,如μC/OS-III(Cs/OS3)、FreeRTOS都支持時間片輪詢算法。FreeRTOS中每個任務的時間片長度是固定的,為一個時間節拍;而μC/OS-III中每個任務的時間片長度可變,可在任務創建時指定。

2

基于優先級的協同調度

在RTOS中,協同調度是基于優先級的非搶占調度方法。任務按優先級排序,并且是事件驅動類型的,一旦正在運行的任務完成,或者任務主動調用OS服務放棄CPU,就緒運行的優先級最高的任務才可以獲得CPU使用權。

fa460ab6-fdb6-11ed-90ce-dac502259ad0.png

3

搶占式調度

RTOS通過可搶占調度保證實時性。為了保證任務響應,在搶占調度策略中,只要一個優先級更高的任務就緒,正在運行的任務低優先級任務將被切換出來。通過搶占,正在運行的任務被迫放棄處理器,即使任務工作還沒有完成。

fa95bf48-fdb6-11ed-90ce-dac502259ad0.png

RTOS通??梢耘渲脼槭褂迷S多確定性調度算法,以保證滿足任務截止時限。如FreeRTOS、μC/OS-III支持搶占和時間片輪詢兩種調度方法。

4

總結

RTOS對于嵌入式軟件開發人員來說是一個強大的工具。RTOS應用中,每個任務都有單獨的任務控制塊,其中包含堆棧、優先級和ID等參數。每個任務都可以被看作是單獨的應用程序。RTOS還提供了各種各樣的同步和通信工具,如信號量、互斥信號量和消息隊列,簡化應用的開發。

但任務切換將消耗CPU時間,即使在32位處理器上,RTOS也會造成時間損失。任務切換比中斷占用更多的時間。如果是一個很小的應用程序,但需要充分利用處理器資源,在這種情況下,需仔細考慮RTOS的可行性。

每種調度算法都有其優缺點,了解RTOS常用的調度算法,可以幫助我們做出合適的選擇。

審核編輯 :李倩

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

    關注

    68

    文章

    18275

    瀏覽量

    222146
  • 算法
    +關注

    關注

    23

    文章

    4455

    瀏覽量

    90751
  • RTOS
    +關注

    關注

    20

    文章

    776

    瀏覽量

    118794
收藏 人收藏

    評論

    相關推薦

    RTOS和Linux的內存映射及移植方法

    一些移植方法。特別地,本文會重點討論RTOS和Linux的內存映射,基于I/O調度隊列的移植,把RTOS I/O重定義到Linux下的驅動程序和守護進程里。
    發表于 07-03 07:43

    嵌入式操作系統的搶占式調度策略是什么

    嵌入式操作系統的搶占式調度策略是什么
    發表于 04-28 06:23

    調度算法是什么?車載操作系統內核調度策略應注意哪些問題?

    調度算法是什么?車載操作系統內核調度策略應注意哪些問題?
    發表于 05-13 07:02

    如何使用Tracealyzer理解多任務調度?

    調試器視圖的補充。我們今天來了解一下如何通過Tracealyzer記錄的數據獲取任務優先級及執行時間相關的信息。優先級決定何時調度大多數RTOS使用固定優先級調度策略,開發人員為每個任
    發表于 12-17 16:01

    RTOS具有的基本功能有哪些

    :?1. 任務調度策略?2. 內存管理?3. 中斷處理?4. 共享資源的訪問了解Cortex-M3寄存器組:R0-R12 通用寄存器R0-R12都是32位通用寄存器,用于數據操作。但是注意,絕大多數16位thumb指令只能訪問R0-R7,而32位thumb-2指令可以訪問
    發表于 01-06 07:11

    CPU頻率調度策略有哪些?

    CPU頻率調度策略有哪些?
    發表于 03-10 06:54

    一種面向應用優化的片上總線調度策略

    該文提出了一種面向應用優化的片上總線調度策略。以系統通信事件信息為基礎,使用最小任務松弛時間與最小總線空閑時間相結合的調度策略,在優先保證滿足任務實時要求的基
    發表于 11-18 13:51 ?5次下載

    遺傳算法在I_O調度策略中的應用與研究

    遺傳算法在I_O調度策略中的應用與研究_呂燕彬
    發表于 01-03 15:24 ?0次下載

    基于貪心算法的云計算資源調度策略

    基于貪心算法的云計算資源調度策略_崔雪嬌
    發表于 01-07 19:00 ?1次下載

    流媒體資源調度策略的研究與應用羅海波

    流媒體資源調度策略的研究與應用_羅海波
    發表于 03-15 08:00 ?0次下載

    基于Docker的云資源彈性調度策略

    針對云資源彈性調度問題,結合Ceph數據存儲的特點,提出一種基于Docker容器的云資源彈性調度策略。首先,指出Docker容器數據卷不能跨主機的特性給應用在線遷移帶來了困難,并對Ceph集群的數據
    發表于 03-29 10:11 ?0次下載
    基于Docker的云資源彈性<b class='flag-5'>調度</b><b class='flag-5'>策略</b>

    FlexRay總線協議的靜態段消息重傳調度策略

    FlexRay總線協議的靜態段消息重傳調度策略
    發表于 06-22 14:40 ?5次下載

    從裸機調度過渡到RTOS的7個小技巧

    實時操作系統已經成為許多嵌入式系統中的關鍵組件,從裸機調度過渡到RTOS可能是一件棘手的事情。這里有七個小技巧可以幫助嵌入式開發人員更輕松地完成過渡。
    的頭像 發表于 11-29 11:09 ?866次閱讀

    來了解一下RTOS應用中的調度策略

    從前后臺架構的軟件開發過渡到使用實時操作系統(RTOS)可能是一項困難的工作。但使用RTOS有許多優勢,例如簡化應用集成,支持任務搶占調度,當開發人員使用復雜的32位微控制器,且可以獲取足夠
    的頭像 發表于 02-24 11:51 ?751次閱讀

    RTOS核心:調度和分割

    對許多嵌入式項目來說,系統設計師都傾向于選擇實時操作系統(RTOS)。但RTOS總是必要的嗎?答案是取決于具體的應用,因此了解我們要達到什么目標是決定RTOS是必要的還是花瓶的關鍵。 一般來說
    的頭像 發表于 06-22 10:46 ?436次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>