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