操作系统 实时调度
- 在實時系統中,可能存在著兩類不同性質的實時任務,即HRT任務和SRT任務,它們都聯系著一個截止時間。
 - 為保證系統能正常工作,實時調度必須能滿足實時任務對截止時間的要求。
 - 實現實時調度應具備一定的條件。
 
實現實時調度的基本條件
-  
提供必要的信息:
- 就緒時間,是指某任務成為就緒狀態的起始時間,在周期任務的情況下,它是事先預知的一串時間序列。
 - 開始截止時間和完成截止時間,對于典型的實時應用,只須知道開始截止時間,或者完成截止時間。
 - 處理時間,一個任務從開始執行,直至完成時所需的時間。
 - 資源要求,任務執行時所需的一組資源。
 - 優先級,如果某任務的開始截止時間錯過,勢必引起故障,則應為該任務賦予“絕對”優先級;如果其開始截止時間的錯過,對任務的繼續運行無重大影響,則可為其賦予“相對”優先級,供調度程序參考。
 
 -  
系統處理能力強:
- 在實時系統中,若處理機的處理能力不夠強,則有可能因處理機忙不過,而致使某些實時任務不能得到及時處理,從而導致發生難以預料的后果。
 - 假定系統中有m個周期性的硬實時任務HRT,它們的處理時間可表示為Ci,周期時間表示為Pi,則在單處理機情況下,必須滿足下面的限制條件系統才是可調度的:
 - 提高系統處理能力的途徑有二:一是采用單處理機系統,但須增強其處理能力,以顯著地減少對每一個任務的處理時間;二是采用多處理機系統。假定系統中的處理機數為N,則應將上述的限制條件改為:
 
 -  
采用搶占式調度機制:
- 剝奪方式:一般都采用此
 - 非剝奪方式(實現簡單):一般應使實時任務較小,以及時放棄CPU。
 
 -  
具有快速切換機制:
- 對中斷的快速響應能力。對緊迫的外部事件請求中斷能及時響應,要- 求系統具有快速硬件中斷機構,還應使禁止中斷的時間間隔盡量短,以免耽誤時機(其它緊迫任務)。
 - 快速的任務分派能力。為了提高分派程序進行任務切換時的速度,應使系統中的每個運行功能單位適當的小,以減少任務切換的時間開銷。
 
 
實時調度算法的分類
- 非搶占式調度算法 
- 時間片輪轉 秒級
 - 非搶占優先權(協同) 秒~毫秒級
 
 - 搶占式調度算法 
- 時鐘中斷搶占優先權 毫秒級 
- 基于搶占點搶占
 
 - 立即搶占immediate preemption 毫秒~微秒級 
- 只要不在臨界區即搶占(中斷引發)
 
 
 - 時鐘中斷搶占優先權 毫秒級 
 
最早截止時間優先 EDF調度算法
- 根據任務的截止時間來確定任務的優先級
 - 截止時間越早,優先級越高
 - 可以是搶占式或非搶占式
 
非搶占式調度方式用于非周期實時任務
搶占式調度方式用于周期實時任務
- 任務A和任務B的周期時間分別為20 ms和50 ms,每個周期的處理時間分別為10ms和25ms。
 
最低松弛度優先LLF(Least Laxity First)算法
-  
該算法在確定任務的優先級時,根據的是任務的緊急(或松弛)程度。
 -  
任務緊急程度愈高,賦予該任務的優先級就愈高,以使之優先執行。
 -  
主要用于可搶占調度方式中。
 -  
實用于周期性的調度任務。
 -  
系統中有一個按松弛度排序的實時任務就緒隊列,松弛度最低的任務排在隊列最前面,調度程序總是選擇就緒隊列中的隊首任務執行。
 -  
松弛度也是一種優先級,它反映的是任務的緊急程度。
 -  
松弛度=必須完成時間-其本身運行時間-當前時間
 
總結
                            
                        - 上一篇: 【Python】wo ai ni pyt
 - 下一篇: 【操作系统】第二章--进程的描述与控制-