Real-Time CPU Scheduling
Motivation
在 real-time mode,從 event 發生到程式完成執行的時間受到非常嚴格的限制,Real-time CPU scheduling 的目的便是要盡可能滿足 real-time system 的需求
Hard vs. Soft Real-Time
Hard Real-time
Hard real-time 是絕對的。任務若沒在 deadline 前完成,結果跟完全沒執行一樣——甚至更糟,因為系統整體被視為失敗。例如飛控系統、醫療儀器、核電廠控制
Soft Real-time
Soft real-time 則是「盡力而為」的變體。Critical task 雖然享有最高優先權,但系統不保證它一定能在特定時間點被排入 CPU。錯過 deadline 只是導致 performance 下降或接受 penalty,系統還能繼續運作。例如串流影片掉幀,使用者體驗變差但沒有災難性後果
Event Latency
Event latency 指的是從 event 發生到實際開始處理它經過的時間。其由兩個部分構成:

Problem
單純的 priority scheduling 只能做到 soft real-time,我們只能讓 high priority task 先跑但不能保證一定在 deadline 前完成
為了達到 hard real-time,所以我們希望在新 task 建立前就可以預測是否能在 deadline 前完成 queue 中的 task,所以我們引入了 periodic task model 這個模型來做為接下來數學推導的假設前提
Solution
我們引入了 admission control 這套機制,他基於根據 periodic task model 建立起的 schedulability test 預估「加入此 task 會不會導致 deadline miss」來決定是要接受或拒絕這個 task。而 scheduler 則負責將已經接受的 task 進行 scheduling
Algorithm
1. Rate-Monotonic Scheduling
D-OS-Ch05hd-Rate-Monotonic_Scheduling