從裸機(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無縫集成。
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í)行。
常用的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)。
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ù)工作還沒有完成。
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)度算法,可以幫助我們做出合適的選擇。
-
微控制器
+關(guān)注
關(guān)注
48文章
7455瀏覽量
150858 -
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)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論