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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RTOS常用的調(diào)度算法

strongerHuang ? 來源:strongerHuang ? 2023-05-29 09:22 ? 次閱讀

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

這里分享一個(gè)嵌入式招聘信息的平臺:

1

時(shí)間片輪詢調(diào)度

前后臺系統(tǒng)實(shí)現(xiàn)通?;谳喸冋{(diào)度技術(shù),它是一種很自然的軟件編寫方式,只需向超級循環(huán)中添加新代碼,相當(dāng)于增加了一個(gè)新的任務(wù)。

RTOS中的輪詢調(diào)度策略,是允許多個(gè)任務(wù)可以分配同一個(gè)優(yōu)先級別。調(diào)度程序基于時(shí)鐘監(jiān)控任務(wù)時(shí)間,任務(wù)處于相關(guān)優(yōu)先級,按照先進(jìn)先出的原則執(zhí)行分配到的時(shí)間片,時(shí)間到了,即使當(dāng)前任務(wù)還沒有完成,任務(wù)也將CPU時(shí)間傳遞給下一個(gè)任務(wù)。在下一個(gè)分配到的時(shí)間段內(nèi),該任務(wù)將從它停止的位置繼續(xù)執(zhí)行。

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

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

2

基于優(yōu)先級的協(xié)同調(diào)度

在RTOS中,協(xié)同調(diào)度是基于優(yōu)先級的非搶占調(diào)度方法。任務(wù)按優(yōu)先級排序,并且是事件驅(qū)動(dòng)類型的,一旦正在運(yùn)行的任務(wù)完成,或者任務(wù)主動(dòng)調(diào)用OS服務(wù)放棄CPU,就緒運(yùn)行的優(yōu)先級最高的任務(wù)才可以獲得CPU使用權(quán)。

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

3

搶占式調(diào)度

RTOS通過可搶占調(diào)度保證實(shí)時(shí)性。為了保證任務(wù)響應(yīng),在搶占調(diào)度策略中,只要一個(gè)優(yōu)先級更高的任務(wù)就緒,正在運(yùn)行的任務(wù)低優(yōu)先級任務(wù)將被切換出來。通過搶占,正在運(yùn)行的任務(wù)被迫放棄處理器,即使任務(wù)工作還沒有完成。

fa95bf48-fdb6-11ed-90ce-dac502259ad0.png RTOS通??梢耘渲脼槭褂迷S多確定性調(diào)度算法,以保證滿足任務(wù)截止時(shí)限。如FreeRTOS、μC/OS-III支持搶占和時(shí)間片輪詢兩種調(diào)度方法。 ?

4

總結(jié)

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

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

每種調(diào)度算法都有其優(yōu)缺點(diǎn),了解RTOS常用的調(diào)度算法,可以幫助我們做出合適的選擇。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7455

    瀏覽量

    150858
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10805

    瀏覽量

    210850
  • RTOS
    +關(guān)注

    關(guān)注

    21

    文章

    809

    瀏覽量

    119362

原文標(biāo)題:RTOS應(yīng)用中的調(diào)度策略

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    請問CMSIS-RTOS RTX的任務(wù)調(diào)度鎖在哪里?

    請問一下,CMSIS-RTOS RTX的任務(wù)調(diào)度鎖在哪里?謝謝!
    發(fā)表于 05-13 08:28

    RTOS的ABC討論(轉(zhuǎn))

    ,這個(gè)時(shí)間就不怎么太保證,偶爾的會超出,僅僅有統(tǒng)計(jì)上的意義。不嚴(yán)謹(jǐn)?shù)恼f是這個(gè)意思。因?yàn)橐獙?shí)時(shí),所以調(diào)度算法不能使用普通的調(diào)度算法調(diào)度
    發(fā)表于 02-27 14:20

    詳解Kernel2.6調(diào)度算法

    Kernel2.6調(diào)度算法仍然是基于優(yōu)先級的調(diào)度,它的算法復(fù)雜度為O(1),也就是說是調(diào)度器的開銷是恒定的,與系統(tǒng)當(dāng)前的負(fù)載沒有關(guān)系。
    發(fā)表于 08-07 06:52

    RTOS實(shí)時(shí)內(nèi)核μC/OS怎么優(yōu)化任務(wù)調(diào)度算法?

    /OSII繼承了μC/OS的算法,有執(zhí)行效率高、占用空間小、實(shí)時(shí)性強(qiáng)和可擴(kuò)展性好等特點(diǎn),被移植到幾乎所有類型的CPU上,成為在嵌入式領(lǐng)域非常有影響力的RTOS。然而,由于該實(shí)時(shí)內(nèi)核是為8位CPU設(shè)計(jì)的,對于那些具有優(yōu)先級算法硬件
    發(fā)表于 11-06 06:40

    RT_Thread的算法和uCosIII的調(diào)度算法一樣嗎?

    我看官方手冊說設(shè)置時(shí)configMAX_PRIORITIES不能超過32,有沒有誰試過改成255的或者更大的,小弟改了幾下都不行!還有能問問FreeRTOS的任務(wù)調(diào)度算法和RT_Thread的不一樣,RT_Thread的算法和u
    發(fā)表于 06-18 09:00

    調(diào)度器的原理及其任務(wù)調(diào)度代碼實(shí)現(xiàn)

    一、介紹調(diào)度器是常用的一種編程框架,也是操作系統(tǒng)的拆分多任務(wù)的核心,比如單片機(jī)的裸機(jī)程序框架,網(wǎng)絡(luò)協(xié)議棧的框架如can網(wǎng)關(guān)、485網(wǎng)關(guān)等等,使用場合比較多,是做穩(wěn)定產(chǎn)品比較常用的編程技術(shù)二、原理1
    發(fā)表于 02-17 07:07

    基于DiffServ模型的調(diào)度算法

    區(qū)分服務(wù)(DiffServ)模型中不同隊(duì)列調(diào)度算法對網(wǎng)絡(luò)性能有不同的影響。該文介紹了DiffServ實(shí)現(xiàn)模型,分析比較了目前4種典型隊(duì)列調(diào)度算法的基本原理及性能特點(diǎn)?;贠PNET M
    發(fā)表于 04-13 09:29 ?14次下載

    網(wǎng)格任務(wù)調(diào)度算法研究

    網(wǎng)格任務(wù)調(diào)度算法是影響網(wǎng)格成功與否的關(guān)鍵技術(shù)之一。本文總結(jié)了網(wǎng)格計(jì)算系統(tǒng)的體系結(jié)構(gòu)和特征,分析了網(wǎng)格任務(wù)調(diào)度算法的基本原理和性能指標(biāo),并對各種調(diào)度
    發(fā)表于 08-14 10:27 ?10次下載

    基于嵌入式RTOS的閉環(huán)反饋調(diào)度算法的研究

    分析了常見調(diào)度算法的特點(diǎn),提出一種基于嵌入式實(shí)時(shí)操作系統(tǒng)的閉環(huán)反饋控制調(diào)度策略。針對任務(wù)的特點(diǎn).從任務(wù)的周期與非周期性、I/O消耗和處理器消耗型兩個(gè)方面對任務(wù)進(jìn)行
    發(fā)表于 10-10 15:23 ?32次下載

    動(dòng)態(tài)調(diào)度算法(DSA)

    動(dòng)態(tài)調(diào)度算法動(dòng)態(tài)調(diào)度算法(DSA)包括2 個(gè)方面:動(dòng)態(tài)調(diào)度協(xié)議(DSP)和利用非實(shí)時(shí)間隔重發(fā)控制數(shù)據(jù)。
    發(fā)表于 03-30 10:30 ?1741次閱讀
    動(dòng)態(tài)<b class='flag-5'>調(diào)度</b><b class='flag-5'>算法</b>(DSA)

    動(dòng)態(tài)車間調(diào)度問題的改進(jìn)微粒群算法

    為了對生產(chǎn)車間調(diào)度過程中發(fā)生的動(dòng)態(tài)事件進(jìn)行快速、有效的處理,提出了一種將微粒群算法與遺傳算法(CA)、模擬退火算法(SA)相結(jié)合的混合微粒群算法
    發(fā)表于 11-07 17:26 ?0次下載
    動(dòng)態(tài)車間<b class='flag-5'>調(diào)度</b>問題的改進(jìn)微粒群<b class='flag-5'>算法</b>

    電梯調(diào)度算法有哪些?

    1、傳統(tǒng)電梯調(diào)度算法 1.1先來先服務(wù)算法(FCFS) 先來先服務(wù)(FCFS-First Come First Serve)算法,是一種隨即服務(wù)算法
    的頭像 發(fā)表于 12-31 11:29 ?5825次閱讀

    來了解一下RTOS應(yīng)用中的調(diào)度策略

    從前后臺架構(gòu)的軟件開發(fā)過渡到使用實(shí)時(shí)操作系統(tǒng)(RTOS)可能是一項(xiàng)困難的工作。但使用RTOS有許多優(yōu)勢,例如簡化應(yīng)用集成,支持任務(wù)搶占調(diào)度,當(dāng)開發(fā)人員使用復(fù)雜的32位微控制器,且可以獲取足夠
    的頭像 發(fā)表于 02-24 11:51 ?1085次閱讀

    RTOS應(yīng)用中的調(diào)度策略

    RTOS中,協(xié)同調(diào)度是基于優(yōu)先級的非搶占調(diào)度方法。任務(wù)按優(yōu)先級排序,并且是事件驅(qū)動(dòng)類型的,一旦正在運(yùn)行的任務(wù)完成,或者任務(wù)主動(dòng)調(diào)用OS服務(wù)放棄CPU,就緒運(yùn)行的優(yōu)先級最高的任務(wù)才可以獲得CPU使用權(quán)。
    的頭像 發(fā)表于 05-29 09:19 ?633次閱讀
    <b class='flag-5'>RTOS</b>應(yīng)用中的<b class='flag-5'>調(diào)度</b>策略

    RTOS核心:調(diào)度和分割

    對許多嵌入式項(xiàng)目來說,系統(tǒng)設(shè)計(jì)師都傾向于選擇實(shí)時(shí)操作系統(tǒng)(RTOS)。但RTOS總是必要的嗎?答案是取決于具體的應(yīng)用,因此了解我們要達(dá)到什么目標(biāo)是決定RTOS是必要的還是花瓶的關(guān)鍵。 一般來說,在
    的頭像 發(fā)表于 06-22 10:46 ?711次閱讀