即時系統中的排程


即時系統包含需要立即處理的即時任務或應用程式。在這個系統中,遵循基於固定時間約束的時間繫結方法,並且任務必須在時間約束內處理。此時間約束稱為即時任務的截止日期。即時系統指定的 ​​要求由時間線和可預測性給出,其中時間線表示任務與給定截止日期的接近程度,而可預測性定義了交付的時間線中發生的偏差量。

即時系統

傳統的排程演算法(例如基於優先順序的演算法)根據就緒佇列中程序的特徵,對某些程序賦予優先順序。如前所述,即時任務需要根據優先順序完成,並且應在給定的截止日期或約束內處理。它還取決於一些其他指標,例如可行性,它描述了任務是否可以滿足要求。

下一個是硬即時系統,它是任務在預定義的間隔或響應時間內執行的重要要求,並且當即時任務未滿足此要求時,可能會導致系統故障。最後一個指標是軟即時任務,其中必須最大程度地實現響應時間,如果錯過截止日期,則可能會降低系統性能並導致故障,但它們是可恢復的。這些軟任務可以重新安排在以後的時間完成。

即時系統中的排程是一種易於實現的方法,具有以下功能 -

  • 由於在每個任務處理之前都指定了截止日期,因此我們可以指定任務的週期,並且基於此,基於時間共享的排程演算法對於即時任務比其他演算法更有效。

  • 流量速率是恆定的,因為任務的工作負載相對固定,這可以更好地利用 CPU 資源併為硬即時和軟即時任務提供更高的響應時間。

  • 每個任務的複雜度是相對已知的,因此當存在高需求時,我們可以知道哪個任務應該被安排具有較低的複雜度,並且在即時任務處理期間接受低優先順序任務之間的飢餓問題。

排程演算法

對於簡單的即時任務不需要排程程式,因為它們的處理和執行時間是已知的,因此一個任務在完成之後可以自行呼叫另一個任務。但是對於複雜的系統,其中大量任務不遵循正確的流水線,我們可以應用靜態排程演算法,其中提供固定的時間線以確保就緒佇列中任務的執行。這些方法不適用於根據事件動態更改工作負載的即時系統,在這裡我們需要應用動態排程演算法。

當應用動態排程時,我們需要知道根據 SJF、更高優先順序、完成時間等選擇即將執行的任務所遵循的流程,以及如何透過調整執行更少數量的低優先順序任務和剔除方法來處理過載問題。

即時系統中使用的一些排程演算法如下 -

  • 即時系統中使用的一些排程演算法是 - 它也稱為多工的非搶佔式方法,其中作業系統不會從正在執行的一個程序到另一個程序或任務啟動上下文切換技術。所有任務都必須平等地協作才能使排程程式工作。

  • 最早截止日期優先 - 這是一種動態優先順序演算法,其中根據參考優先順序佇列的最接近截止日期選擇任務以供執行。

  • 搶佔式排程 - 當執行多工時,可以對正在執行的任務進行搶佔,並且根據排程程式指令,執行下一個任務,並且搶佔的任務可以在一段時間後處理,將其推送到就緒佇列的末尾。

  • 其他使用搶佔式方法的演算法有迴圈排程、速率單調、固定優先順序搶佔式排程、固定優先順序非搶佔式排程和靜態時間排程。

缺點

  • 在即時任務中,測試是一個繁瑣的過程,其中每個任務都必須在其截止日期內驗證其完成情況,並且如果發生任何延遲,則驗證相同內容需要更多時間。

  • 當同時執行多個任務時,系統可能無法提供滿足其要求的所有任務所需的資源,從而導致資源飢餓。

  • 複雜度較高,因為必須根據要求、截止日期和資源分析即時任務。

結論

即時系統根據時間共享方法執行指定的任務,並滿足所需的截止日期。它使用基於靜態或動態方法的排程演算法,其中任務數量和工作負載可能會有所不同。與低優先順序任務相比,搶佔式或非搶佔式方法用於選擇首先執行的最高優先順序任務。

更新於: 2023-07-18

4K+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告