一、處理機排程的基本概念
作業進入系統駐留在外存的後備佇列上,再至調入記憶體執行完畢,可能要經歷下述**排程。
又稱作業排程或長程排程(long-term scheduling),接納排程(admission scheduling)
主要在早期批處理階段,處理在外存上的作業。
決定外存後備佇列中的哪些作業調入記憶體;
為它們建立程序、分配必要的資源;
將新建立的程序排在就緒佇列上,準備執行。
又稱交換排程或中程排程(medium-term scheduling)
引入目的:提高記憶體利用率和系統吞吐量。根據條件將一些程序調出或再調入記憶體。
也稱為程序排程、微觀排程或短程排程(short-term scheduling)
決定記憶體就緒佇列中的哪個程序獲得處理機,進行分配工作。是最基本的一種排程,在三種基本os中都有。
程序排程方式
1)非搶占方式(non-preemptive mode)
一旦處理機分配給某程序,該程序一直執行。決不允許其他程序搶占已分配執行程序的處理機。
2)搶占方式(preemptive mode)
允許排程程式根據某種原則,暫停某個正在執行的程序,將處理機重新分配給另一程序
三種排程的頻率和複雜度
程序排程:執行頻率最高,演算法不能太複雜,以免占用太多的cpu時間。分時系統通常10~100ms便進行一次。
作業排程:乙個作業執行完畢退出系統時即觸發重新排程乙個新作業入記憶體,週期較長,大約幾分鐘一次。因而也允許作業排程演算法花費較多的時間。
中級排程:執行頻率基本上介於上述兩種排程之間。
什麼是實時系統?
1.指系統能夠在限定的響應時間內提供所需水平的服務。
2.指計算的正確性不僅取決於程式的邏輯正確性,也取決於結果產生的時間,如果系統的時間約束條件得不到滿足,將會發生系統出錯。
實現實時排程的基本條件
1)提供必要的資訊
為了實現實時排程,系統應向排程程式提供有關任務的下述資訊:
就緒時間。該任務成為就緒狀態的時間。
開始截止時間、完成截止時間。
處理時間。從開始執行到完成所需時間。
資源要求。任務執行時所需的一組資源。
優先順序。根據任務性質賦予不同優先順序。
2)系統處理能力足夠強
處理能力不足可能會出現某些實時任務不能得到及時處理,導致難以預料的後果。
3)採用搶占式排程機制
4)具有快速切換機制
實時排程演算法的分類
根據實時任務的性質
硬實時排程演算法
軟實時排程演算法;
根據排程時間不同
靜態排程演算法
動態排程演算法。
按排程方式
非搶占排程演算法
搶占排程演算法;
多處理機環境下
集中式排程
分布式排程
1)非搶占排程演算法
該演算法較簡單,用於一些小型實時系統或要求不太嚴格的實時系統中,又可分為:
非搶占式輪轉排程演算法。常用於工業生產的群控系統中,要求不太嚴格。
非搶占式優先排程演算法。要求相對嚴格,根據任務的優先順序安排等待位置。可用於有一定要求的實時控制系統中。(精心設定可獲得百ms級的響應時間)
2)搶占式排程演算法
較嚴格的實時系統中(t約為數十ms),選擇採用搶占式優先權排程演算法。根據搶占發生時間可分為:
基於時鐘:某高優先順序任務到達後並不立即搶占,而等下乙個時鐘中斷時搶占。
立即搶占:一旦出現外部中斷,只要當前任務未處於臨界區,就立即搶占處理機。
3. 常用的幾種實時排程演算法
目前有許多實時排程演算法,在常用的演算法中簡單介紹兩種實時排程演算法:
最早截止時間優先edf(earliest deadline first)演算法
根據任務的開始截止時間來確定任務的優先順序。截止時間越早,其優先順序越高。
系統保持乙個實時任務就緒佇列
佇列按各任務截止時間的早晚排序
排程程式總是選擇就緒佇列中的第乙個任務,分配處理機使之投入執行。
新任務產生時,是否等當前程式執行完:
搶占式/非搶占式
可能會使作業錯過,但可適用於軟實時系統
最低鬆弛度優先llf(least laxity first)演算法
根據任務緊急(或鬆弛)的程度,來確定任務的優先順序。任務的緊急程度越高(鬆弛度值越小),優先順序就越高。
鬆弛度= 截止完成時間 – 還需執行時間 - 當前時間
可理解為當前時刻到開始截止時刻間的差距,隨著時間的推進,這個差值逐漸變小,任務越來越緊迫。
第三章 處理機排程與死鎖
處理機的 排程 1.高階排程 外存 週期較長,花費較多的時間 2.中級排程 記憶體 執行頻率介於另外兩種排程之間 3.低階排程 程序 執行頻率最高,演算法不能太複雜 面向使用者的準則 1.響應時間快 2.均衡性 3.截止時間的保證 4.優先權準則 面向系統的準則 1.系統吞吐量高 2.處理機利用率高...
第三章 處理機排程與死鎖
短作業優先 sjf 優先順序排程演算法 psa 高響應比優先排程 hrrn 優先權 等待時間 要求服務時間 要求服務時間。程序排程的任務 儲存處理機的現場資訊 按某種演算法選取程序 把處理器分配給程序。程序排程方式 非搶占式 一旦把處理機分配給某程序以後,就一直執行,直到完畢。搶占式 排程程式根據某...
第三章 處理機排程與死鎖
短作業優先 sjf 概念 sjf以作業長短來計算優先順序,作業越短,優先順序越高。其中作業的長短是以作業所要求的執行時間來衡量的。使用 該演算法可使用者作業排程和程序排程。缺點 必須預知作業的執行時間。對長作業非常不利,長作業的周轉時間會明顯地增加。在採用sjf演算法時,人 機無法實現互動。優先順序...