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