可剝奪型核心 與「不可剝奪型核心」

2021-06-29 02:04:12 字數 1158 閱讀 1982

1.不可剝奪型核心

概念:不可剝奪型核心要求每個任務自我放棄 cpu 的所有權。 

不可剝奪型排程法也稱作合作型多工,各個任務彼此合作共享乙個cpu。非同步事件還是由中斷服務來處理。中斷服務可以使乙個高優先順序的任務由掛起狀態變為就緒狀態。 但中斷服務以後控制權還是回到原來被中斷了的那個任務,直到該任務主動放棄 cpu 的使用權時, 那個高優先順序的任務才能獲得 cpu的使用權。

優點1:不可剝奪型核心的乙個優點是響應中斷快。

在任務級,不可剝奪型核心允許使用不可重入函式。 每個任務都可以呼叫非可重入性函式,而不必擔心其它任務可能正在使用該函式,從而造成資料的破壞。因為每個任務要執行到完成時才釋放 cpu 的控制權。當然該不可重入型函式本身不得有放棄 cpu 控制權的企圖。

優點2:使用不可剝奪型核心時, 任務級響應時間比前後臺系統快得多。 

此時的任務級響應時間取決於最長的任務執行時間。

優點3:幾乎不需要使用訊號量保護共享資料。 

執行著的任務占有 cpu,而不必擔心被別的任務搶占。但這也不是絕對的, 在某種情況下,訊號量還是用得著的。處理共享 i/o 裝置時仍需要使用互斥型訊號量

2.可剝奪型核心

概念:當系統響應時間很重要時,要使用可剝奪型核心。最高優先順序的任務一旦就緒,總能得到 cpu 的控制權。

當乙個執行著的任務使乙個比它優先順序高的任務進入了就緒態, 當前任務的 cpu 使用權就被剝奪了, 或者說被掛起了, 那個高優先順序的任務立刻得到了 cpu 的控制權。 如果是中斷服務子程式使乙個高優先順序的任務進入就緒態, 中斷完成時, 中斷了的任務被掛起, 優先順序高的那個任務開始執行。

優點1:使用可剝奪型核心, 最高優先順序的任務什麼時候可以執行,可以得到 cpu 的控制權是可知的。 使用可剝奪型核心使得任務級響應時間得以最優化。

優點2:使用可剝奪型核心時, 應用程式不應直接使用不可重入型函式。呼叫不可重入型函式時,要滿足互斥條件, 這一點可以用互斥型訊號量來實現。 如果呼叫不可重入型函式時, 低優先順序的任務 cpu 的使用權被高優先順序任務剝奪, 不可重入型函式中的資料有可能被破壞。 

綜上所述, 可剝奪型核心總是讓就緒態的高優先順序的任務先執行, 中斷服務程式可以搶占 cpu,到中斷服務完成時, 核心讓此時優先順序最高的任務執行(不一定是那個被中斷了的任務)。任務級系統響應時間得到了最優化, 且是可知的。

實時核心 可剝奪型與不可剝奪型

不可剝奪型核心 不可剝奪型核心 或非搶占式核心,non preemptive kernel 不可剝奪型核心要求每個任務自我放棄cpu的所有權.不可剝奪型排程法也稱作合作型多工,各個任務彼此合作共享乙個cpu.非同步事件還是由中斷服務來處理。中斷服務可以使乙個高優先順序的任務由掛起狀態變為就緒狀態。但...

可剝奪型核心與不可剝奪型核心的區別

由於嵌入式系統只有乙個cpu,因此在乙個具體時刻只能允許多個任務中的乙個任務使用cpu。根據系統中的任務獲得使用cpu的權利的方式,多工實時作業系統的核心分為可剝奪型核心和不可剝奪型核心兩種型別。但無論在兩種型別的核心中,每一種任務都必須具有乙個唯一的優先級別來表示它獲得cpu的權利。不可剝奪型核心...

核心驅動 阻塞型驅動

1 定義 等待佇列頭部 wait queue head t key q 2 初始化 等待佇列頭部 init waitqueue head key q 3 等待事件發生 wait event key q,key num 4 喚醒等待事件 wake up key q 查詢按鍵狀態 key.c inclu...