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

2021-06-08 21:01:50 字數 2154 閱讀 1973

不可剝奪型核心

不可剝奪型核心(或非搶占式核心,non-preemptive kernel)

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

不可剝奪型排程法也稱作合作型多工,各個任務彼此合作共享乙個cpu.

非同步事件還是由中斷服務來處理。中斷服務可以使乙個高優先順序的任務由掛起狀態變為就緒狀態。但中斷服務以後控制權還是回到原來被中斷了的那個任務,直到該任務主動放棄cpu的使用權時,那個高優先順序的任務才能獲得cpu的使用權。

不可剝奪型核心優點

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

在任務級,不可剝奪型核心允許使用不可重入函式

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

不可剝奪型核心幾乎不需要使用訊號量保護共享資料。

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

例如,在印表機的使用上,仍需要滿足互斥條件

不可剝奪型核心缺點

不可剝奪型核心的最大缺陷在於其響應時間.高優先順序的任務已經進入就緒態,但還不能執行,要等,也許要等很長時間,直到當前執行著的任務釋放cpu.與前後系統一樣,不可

剝奪型核心的任務級響應時間是不確定的,不知

道什麼時候最高優先順序的任務才能拿到cpu的

控制權,完全取決於應用程式什麼時候釋放

cpu.

不可剝奪型核心允許每個任務執行,直到該任務自願放棄cpu的控制權.中斷可以打入執行著的任務.中斷服務完成以後將cpu控制權還給被中斷了的任務。任務級響應時間要大

大好於前後系統,但仍是不可知的,商業軟體幾乎

沒有不可剝奪型核心.

不可剝奪型核心執行原理

可剝奪型核心

當系統響應時間很重要時,要使用可剝奪型核心(或搶占式核心,preemptive kernel)。

最高優先順序的任務一旦就緒,總能得到cpu的控制權。

當乙個執行著的任務使乙個比它優先順序高的任務進入了就緒態,當前任務的cpu使用權就被剝奪了,或者說

被掛起了,那個高優先順序的任務立刻得到了cpu的控制權。

如果是中斷服務子程式使乙個高優先順序的任務進入就緒態,中斷完成時,中斷了的任務被掛起,優先順序高的那

個任務開始執行。

# 使用可剝奪型核心,最高優先順序的任務什麼時候可以執行,可以得到cpu的控制權是可知的。

# 使用可剝奪型核心使得任務級響應時間得以最優化。

# 使用可剝奪型核心時,應用程式不應直接使用不可重入型函式。呼叫不可重入型函式時,要滿足互斥條件,這一點

可以用互斥型訊號量來實現。如果呼叫不可重入型函式時,低優先順序的任務cpu的使用權被高優先順序任務剝奪,不

可重入型函式中資料有可能被破壞。

# 可剝奪型核心總是讓就緒態的高優先順序的任務先執行,中斷服務程式可以搶占cpu,到中斷服務完成時,核心讓此

時優先順序最高的任務執行(不一定是那個被中斷了的任務)。任務級系統響應時間得到了最優化,且是可知的。

可剝奪型核心執行原理

區別

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

1.不可剝奪型核心 概念 不可剝奪型核心要求每個任務自我放棄 cpu 的所有權。不可剝奪型排程法也稱作合作型多工,各個任務彼此合作共享乙個cpu。非同步事件還是由中斷服務來處理。中斷服務可以使乙個高優先順序的任務由掛起狀態變為就緒狀態。但中斷服務以後控制權還是回到原來被中斷了的那個任務,直到該任務主...

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

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

可重入與不可重入

這種情況出現在多工系統當中,在任務執行期間捕捉到訊號並對其進行處理時,程序正在執行的指令序列就被訊號處理程式臨時中斷。如果從訊號處理程式返回,則繼續執行程序斷點處的正常指令序列,從重新恢復到斷點重新執行的過程中,函式所依賴的環境沒有發生改變,就說這個函式是可重入的,反之就是不可重入的。眾所周知,在程...