以下爲看視頻筆記。。。。
1.線程的優先級
優先級和時間片是線程的兩個重要參數,分別描述了線程競爭處理器資源的能力和持有處理器時間長短的能力。
RT-Thread最大支持256個優先級(數值越小的優先級越高,0爲最高優先級,最低優先級預留給空閒線程) ;
用戶可以通過rt _config.h中 的RT _THREAD _PRIORITY _MAX宏來修改最大支持的優先級;
針對STM32默認設置最大支持32個優先級;
具體應用中,線程總數不受限制,能創建的線程總數只和具體硬件平臺的內存有關
2.線程時間片
時間片只有在相同優先級的就緒態線程中起作用,系統對優先級相同的就緒態線程採用時間片輪轉的調度方式進行調度時,時間片起到約束線程單次運行時長的作用,其單位是-一個系統節拍(OS Tick)
假設有2個優先級相同的就緒態線程A與B,A線程的時間片設置爲10,B線程的時間片設置爲5,那麼當系統中不存在比A優先級高的就緒態線程時,系統會在A、B線程間來回切換執行,並且每次對A線程執行10個節拍的時長,對B線程執行5個節拍的時長
3. 線程調度規則
優先級搶佔調度
操作系統總是讓具有最高優先級的就緒任務優先運行:即當有任務的優先級高於當前任務優先級並且處於就緒態後,就- -定會發生任務調度
通過優先級搶佔機制,最大限度的滿足了系統的實時性
時間片輪詢調度
當操作系統中存在相同優先級的線程時(優先級相同就不會搶佔),操作系統會按照設置的時間片大小來輪流調度線程,時間片起到約束線程單次運行時長的作用,其單位是-一個系統節拍(oS Tick)
通過時間片輪詢,保證優先級相同的任務能夠輪流佔有處理器