天天看點

作業系統 實時排程

  • 在實時系統中,可能存在着兩類不同性質的實時任務,即HRT任務和SRT任務,它們都聯系着一個截止時間。
  • 為保證系統能正常工作,實時排程必須能滿足實時任務對截止時間的要求。
  • 實作實時排程應具備一定的條件。

實作實時排程的基本條件

  • 提供必要的資訊:
    • 就緒時間,是指某任務成為就緒狀态的起始時間,在周期任務的情況下,它是事先預知的一串時間序列。
    • 開始截止時間和完成截止時間,對于典型的實時應用,隻須知道開始截止時間,或者完成截止時間。
    • 處理時間,一個任務從開始執行,直至完成時所需的時間。
    • 資源要求,任務執行時所需的一組資源。
    • 優先級,如果某任務的開始截止時間錯過,勢必引起故障,則應為該任務賦予“絕對”優先級;如果其開始截止時間的錯過,對任務的繼續運作無重大影響,則可為其賦予“相對”優先級,供排程程式參考。
  • 系統處理能力強:
    • 在實時系統中,若處理機的處理能力不夠強,則有可能因處理機忙不過,而緻使某些實時任務不能得到及時處理,進而導緻發生難以預料的後果。
    • 假定系統中有m個周期性的硬實時任務HRT,它們的處理時間可表示為Ci,周期時間表示為Pi,則在單處理機情況下,必須滿足下面的限制條件系統才是可排程的:
      作業系統 實時排程
    • 提高系統處理能力的途徑有二:一是采用單處理機系統,但須增強其處理能力,以顯著地減少對每一個任務的處理時間;二是采用多處理機系統。假定系統中的處理機數為N,則應将上述的限制條件改為:
      作業系統 實時排程
  • 采用搶占式排程機制:
    • 剝奪方式:一般都采用此
    • 非剝奪方式(實作簡單):一般應使實時任務較小,以及時放棄CPU。
  • 具有快速切換機制:
    • 對中斷的快速響應能力。對緊迫的外部事件請求中斷能及時響應,要- 求系統具有快速硬體中斷機構,還應使禁止中斷的時間間隔盡量短,以免耽誤時機(其它緊迫任務)。
    • 快速的任務分派能力。為了提高分派程式進行任務切換時的速度,應使系統中的每個運作功能機關适當的小,以減少任務切換的時間開銷。

實時排程算法的分類

  • 非搶占式排程算法
    • 時間片輪轉 秒級
    • 非搶占優先權(協同) 秒~毫秒級
  • 搶占式排程算法
    • 隻要不在臨界區即搶占(中斷引發)
    • 基于搶占點搶占
    • 時鐘中斷搶占優先權 毫秒級
    • 立即搶占immediate preemption 毫秒~微秒級
作業系統 實時排程
作業系統 實時排程

最早截止時間優先 EDF排程算法

  • 根據任務的截止時間來确定任務的優先級
  • 截止時間越早,優先級越高
  • 可以是搶占式或非搶占式

非搶占式排程方式用于非周期實時任務

作業系統 實時排程

搶占式排程方式用于周期實時任務

  • 任務A和任務B的周期時間分别為20 ms和50 ms,每個周期的處理時間分别為10ms和25ms。

最低松弛度優先LLF(Least Laxity First)算法

  • 該算法在确定任務的優先級時,根據的是任務的緊急(或松弛)程度。
  • 任務緊急程度愈高,賦予該任務的優先級就愈高,以使之優先執行。
  • 主要用于可搶占排程方式中。
  • 實用于周期性的排程任務。

繼續閱讀