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