方式
任務調度方式常規可分為:
可打斷調度(實時系統基本功能):關鍵防止優先權倒置;
不可打斷調度:先來先服務,不可中斷。
算法
任務調度算法可分為——事件驅動調度算法:根據事件的先後以及任務的優先權安排任務的執行;時鐘驅動調度算法:一般用於周期任務。事件驅動調度依賴外部硬體設備,通過產生中斷方式為任務調度提供信號。分兩種,集成事件驅動調度:中斷的優先權與任務的優先權相對應,中斷只有在其優先權高於正在執行的任務時才會被處理器回響。非集成事件驅動調度:任務通過外部中斷啟動,中斷優先權與相關任務優先權沒有關係。
時鐘驅動調度基於時鐘驅動的調度算法一般用於周期性的任務調度,其他空閒時間可以用非周期性的任務調度,在一個循環內,給周期性任務靜態地分配了固定的時間間隔(稱為超周期),為各個任務周期的最低公倍數。為了便於任務分配,超周期要劃分為同樣長度的幾個小周期f,每個小周期的開始時間也為任務調度時間。
時鐘驅動調度常用參數
任務T的起始就緒時間;p:任務T的周期,e:任務T的執行時間;u:任務T的利用率,u=e/p;D:任務T的時限(一般p等於D);
時鐘驅動調度超周期和小周期f的確定:
1理想情況下,每個作業能夠在單個f時間內開始並且完成執行,即f≥max(e);
2小周期f應儘可能短,f能被超周期整除;
3由於調度發生在每個小周期的開始,並且作業在每個小周期內不會被搶占,為了便於確定時限到達前任務是否可以完成,要求任務開始和到達時限之間至少有一個f的時間。