1. 程式人生 > >低優先級任務在執行過程中高優先級任務在幹什麽

低優先級任務在執行過程中高優先級任務在幹什麽

而在 必須 調度器 就會 便在 一個 中斷 正在 運行

在操作系統中,低優先級任務想要得到CPU的使用權,是建立在高優先級任務遇到阻塞語句的前提下,比如等待事件標誌、等待消息、等待信號量、遇見延遲函數等

而在低優先級任務執行過程中,高優先級任務在幹什麽,或者說CPU在幹什麽

在搶占式操作系統中,高優先級任務是不會等待低優先級任務徹底執行完畢後,通過調度器切換任務而獲得CPU使用權,而是高優先級任務的就緒條件一滿足就會立刻奪過CPU的使用權,暫時中斷正在執行的低優先級任務,但CPU在執行低優先級任務時,是如何實時知道高優先級任務就緒了呢,由結果倒推原因,那就是CPU不是一直特別專一的只執行低優先級任務,而是有一個大掃描,會實時檢測高優先級任務的運行條件是否已滿足,一旦滿足就會發生搶占事件,否則繼續執行低優先級任務

其實仔細研究過操作系統後便知,這是操作系統的任務切換機制,操作系統跟人一樣必須有一個心跳,整個系統按照這個心跳有序正確的工作,這個心跳就是系統時鐘,系統時鐘一般是由定時器產生,每隔一定時間便產生一次中斷,系統便在這個中斷裏做一些事情,這當中就包括調度器的任務切換,即一次中斷到來後便檢測高優先級任務的就緒條件是否滿足,條件滿足則切換任務,不滿足則繼續執行當前任務,這就在現象上表現出,操作系統能實時知道高優先級任務何時就緒了,以便切換到高優先級任務而執行

低優先級任務在執行過程中高優先級任務在幹什麽