電電俠 想學(xué)習(xí)RTOS,奈何不知從何下手,唉 實(shí)時(shí)操作系統(tǒng)?我熟啊,且聽(tīng)我慢慢給你道來(lái)
科科君
實(shí)時(shí)操作系統(tǒng)(RTOS)廣泛應(yīng)用于消費(fèi)電子、娛樂(lè)產(chǎn)品、家用電器、工業(yè)設(shè)備、醫(yī)療儀器、軍事武器和科研設(shè)備中,在航空航天控制系統(tǒng)、汽車工業(yè)、銀行金融、機(jī)器人系統(tǒng)、安全和電信以及交通控制等安全攸關(guān)領(lǐng)域發(fā)揮著關(guān)鍵作用。
電電俠 應(yīng)用領(lǐng)域真廣啊,我還想知道學(xué)習(xí)RTOS的關(guān)鍵是什么 那必須是調(diào)度,調(diào)度調(diào)度驚起一番。。。
科科君
RTOS首先至少需支持優(yōu)先級(jí)搶占式調(diào)度,任務(wù)間同步與通信應(yīng)能避免優(yōu)先級(jí)反轉(zhuǎn), 并提供高精度定時(shí)器。RTOS往往運(yùn)行在資源受限的設(shè)備,調(diào)度資源確定性與調(diào)度時(shí)間確 定性是重要需求,進(jìn)而可以保證在事先確定的時(shí)間內(nèi)使用系統(tǒng)資源。
電電俠 有點(diǎn)明白了,科科大大快快繼續(xù)講 接下來(lái)我們將探討基于優(yōu)先級(jí)的搶占式調(diào)度
科科君
在我們的例子中,當(dāng)一個(gè)優(yōu)先級(jí)更高的任務(wù)進(jìn)入就緒狀態(tài)時(shí),當(dāng)前的任務(wù)會(huì)停止運(yùn)行。這意味著一個(gè)任務(wù)可以處在三個(gè)狀態(tài)之一:運(yùn)行中(執(zhí)行中)、就緒和掛起??梢杂萌缦?tīng)顟B(tài)轉(zhuǎn)換圖描述任務(wù)在搶占式調(diào)度中的行為。
電電俠 那什么時(shí)候任務(wù)處于運(yùn)行狀態(tài)?什么時(shí)候處于就緒狀態(tài)? 只有在被RTOS調(diào)度時(shí)一個(gè)任務(wù)才能進(jìn)入運(yùn)行狀態(tài),在此之前它必須處在就緒狀態(tài),在基于優(yōu)先級(jí)的系統(tǒng)中它還必須處在就緒隊(duì)列的第一位。
科科君
任務(wù)掛起或者被搶占時(shí)會(huì)離開(kāi)運(yùn)行狀態(tài)。當(dāng)任務(wù)結(jié)束執(zhí)行,或者因?yàn)槟撤N原因無(wú)法繼續(xù)時(shí),任務(wù)會(huì)掛起,比如在本例中任務(wù)需要進(jìn)行特定時(shí)長(zhǎng)的延時(shí)。當(dāng)任務(wù)進(jìn)入掛起狀態(tài)時(shí)會(huì)釋放處理器的使用權(quán),從而允許其他任務(wù)運(yùn)行(見(jiàn)下圖)。釋放可以是任務(wù)自行觸發(fā)的,也可以是 RTOS強(qiáng)制的。一個(gè)運(yùn)行中的任務(wù)可以用兩種方式自行釋放處理器:其一,任務(wù)完成了必需的操作退出;其二,任務(wù)因?yàn)閮?nèi)部產(chǎn)生的信號(hào)(內(nèi)部事件)放棄對(duì)處理器的控制。
下圖列舉了強(qiáng)制釋放處理器的原因
科科君
電電俠 有沒(méi)有任務(wù)狀態(tài)模型可供參考呢 下圖即為任務(wù)狀態(tài)的一般模型,詳細(xì)過(guò)程如下所述
科科君
當(dāng)搶占發(fā)生時(shí),任務(wù)即使沒(méi)有完成也會(huì)被迫放棄處理器,此時(shí)任務(wù)并沒(méi)有被掛起,而是會(huì)返回就緒隊(duì)列。任務(wù)在隊(duì)列中的位置是由優(yōu)先級(jí)決定的,它會(huì)在隊(duì)列中等待到下一次被調(diào)度。當(dāng)條件滿足時(shí)任務(wù)會(huì)從掛起狀態(tài)進(jìn)入就緒狀態(tài),比如完成一個(gè)事件、經(jīng)過(guò)特定的時(shí)間或者某種事件和時(shí)間的組合。不同的任務(wù)有不同的掛起狀態(tài)。
簡(jiǎn)單示例
如果需要,任務(wù)模型可以進(jìn)一步擴(kuò)充并顯示任務(wù)的創(chuàng)建和刪除。在基于優(yōu)先級(jí)的系統(tǒng)中,任務(wù)的就緒和再調(diào)度會(huì)變得很復(fù)雜,下圖是一個(gè)簡(jiǎn)單的例子,圖中展示了優(yōu)先級(jí)對(duì)任務(wù)在就緒和掛起隊(duì)列中位置的影響,以及當(dāng)任務(wù)就緒時(shí)就緒隊(duì)列是如何變化的。
電電俠 學(xué)習(xí)到了,不過(guò)還有一個(gè)小問(wèn)題,可否解釋下“再調(diào)度(reschedule/rescheduling)”? 再調(diào)度是決定接下來(lái)要運(yùn)行的任務(wù)的過(guò)程,也可翻譯為重新調(diào)度。
審核編輯:黃飛
-
處理器
+關(guān)注
關(guān)注
68文章
19286瀏覽量
229853 -
嵌入式
+關(guān)注
關(guān)注
5082文章
19126瀏覽量
305247 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6825瀏覽量
123333 -
RTOS
+關(guān)注
關(guān)注
22文章
813瀏覽量
119643
原文標(biāo)題:嵌入式實(shí)時(shí)操作系統(tǒng)——基于優(yōu)先級(jí)的搶占式調(diào)度
文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論