按我的理解,調度就以下項目:如何搶先工作?
- 計算任務的時間片(這可能是算法依賴)。
- 交換機任務 - 一個理想的調度程序喜歡做O(1)。一個好的調度算法提供了O(logN)的複雜性。選擇新任務的標準依賴於調度算法。
我的問題是預emptiom。例如,創建一個新任務,它需要馬上運行(並且它確實滿足條件 - 例如它具有比當前正在運行的任務更高的優先級)。
將如何調度器知道更高優先級的新任務是提供和運行所需。我們需要在內核實現中有一些控制代碼來檢測這樣的任務條目,並調用Scheduler來保存當前正在運行的任務的狀態並重新安排新的任務。我想知道更多關於這種軟件實體的細節。
而且我預計要安排此代碼在運行CPU控制「調度」,使調度切換任務。
請告知這是如何實現的,也可以是我在我的理解有些差距。
在此先感謝
你對書的建議是我同意的。 +1。當然還有很好的詳細答案。 –
感謝您的詳細解釋。這對我有意義。我也會閱讀你所建議的書和文章。 – Zoolander