fixed priority:任務優先順序,任務優先順序可在執行時修改。
pre-emptive:搶占,比當前執行任務優先順序更高的任務進入ready態時,將當前執行任務切換到ready狀態並且執行高優先順序任務。
time slicing:時間分片,在搶占模式、開啟時間片配置下多個任務擁有相同優先順序,多個任務共享處理器時間。在每個時間片用完後排程器選擇乙個該優先順序下處於ready狀態的任務執行,不用等待執行任務主動放棄cpu。
1、搶占式排程(
prioritized pre-emptive scheduling)
a. 帶時間片配置
(with time slicing)
具有同優先順序的任務執行時只占用乙個time slice,當time slice 用完後切換到下乙個ready任務。如果在當前的 time slice 發生高優先順序搶占現象,再次返回該優先順序時則選擇下乙個ready任務執行,不會再執行上乙個任務。
b. 不帶時間片配置
(without time slicing)
任務會一直執行下去,同優先順序的其它任務不會被執行,直到該執行任務主動放棄cpu或者更高優先順序任務搶占並返回當前優先順序。
2、合作排程(
co-operative scheduling)
排程器被配置為非搶占式,選擇任務執行時排程器會考慮優先順序。多個優先順序不同的任務集中的乙個執行態任務會一直執行下去,直到該執行任務主動放棄cpu時,處於ready態的最高優先順序任務才回被執行。
FreeRTOS 任務排程 List 組織
嵌入式 freertos 前面了解了 freertos 的記憶體管理,接下來看看任務排程,這也是乙個作業系統中最重要的一部分,而其任務排程大量使用了鍊錶 list.c 實現 排程器使用鍊錶跟蹤不同狀態下的任務 就緒 掛起 延時的任務,都會被掛接到各自的鍊錶中 所以這裡用一定篇幅介紹下主要供排程使用的...
程序排程及排程策略
程序排程負責動態的將cpu分配給各個程序。主要功能如下 1 記住程序狀態。2 決定哪個程序,什麼時候獲取cpu及其占用多長時間。3 把cpu分配給程序,即將選中程序的pcb中有關程序的相關資訊,如程式狀態暫存器 通用暫存器等內容送入cpu的相應的暫存器中,從而讓該程序占用cpu去執行。4 收回cpu...
freertos作業系統 任務排程
一 任務建立 目的 應用程式中如何給各任務分配處理時間 任意時刻,os如何使任務投入執行 優先順序如何影響系統行為 任務狀態 如何實現任務 建立乙個或多個任務的例項 任務引數的使用 right 改變任務優先順序 刪除任務 週期性處理 空閒任務何時執行,可以用來幹什麼 解決 任務實現 任務函式 voi...