1)非搶占方式(non-preemptive
mode)
一旦處理機分配給某程序,該程序一直執行。決不允許其他程序搶占已分配執行程序的處理機。
2)搶占方式(preemptive mode)
允許排程程式根據某種原則,暫停某個正在執行的程序,將處理機重新分配給另一程序。
程序排程方式比較
3、中級排程(intermediate-level
scheduling)
v 又稱交換排程或中程排程(medium-term
scheduling)
引入目的:提高記憶體利用率和系統吞吐量。根據條件將一些程序調出或再調入記憶體。
三種排程的頻率和複雜度
程序排程:執行頻率最高,演算法不能太複雜,以免占用太多的cpu時間。分時系統通常10~100ms便進行一次。
作業排程:乙個作業執行完畢退出系統時即觸發重新排程乙個新作業入記憶體,週期較長,大約幾分鐘一次。因而也允許作業排程演算法花費較多的時間。
中級排程:執行頻率基本上介於上述兩種排程之間。
4、排程佇列模型
不論高階、中級或者低階排程,都涉及到程序佇列,由此形成了三類排程佇列模型。從這三種方式中體驗排程的過程。
① 僅有程序排程的排程佇列模型
② 具有高階和低階排程的排程佇列模型
③ 同時具有**排程的排程佇列模型
1)僅有程序排程的排程佇列模型
2)具有高階和低階排程的排程佇列模型
3)同時具有**排程的排程佇列模型
二、排程演算法
1、先來先服務排程演算法fcfs
一種最簡單的排程演算法,按先後順序進行排程。既可用於作業排程,也可用於程序排程。
v 按照作業提交,或程序變為就緒狀態的先後次序分派cpu;
v 新作業只有當當前作業或程序執行完或阻塞才獲得cpu執行
v 被喚醒的作業或程序不立即恢復執行,通常等到當前作業或程序出讓cpu。
(所以,預設即是非搶占方式)
優點:v 通過上表可見採用sjf/spf演算法,平均周轉時間、平均帶權周轉時間都有明顯改善。sjf/spf排程演算法能有效的降低作業的平均等待時間,提高系統吞吐量。
不足:
1.
對短作業有利,但同時造成了對長作業的不利。
2.由於作業(程序)的長短含主觀因素,不一定能真正做到短作業優先。
3.未考慮作業的緊迫程度,因而不能保證緊迫性作業(程序)的及時處理。
高優先權優先排程演算法hpf
分兩種方式:
v 非搶占式優先權演算法
v 搶占式優先權演算法 關鍵點:新作業產生時
2)優先權的型別
v 靜態優先權:建立程序時確定,整個執行期間保持不變。一般利用某一範圍的乙個整數來表示,又稱為優先數。
v 動態優先權:建立程序時賦予的優先權可隨程序的推進或隨其等待時間的增加而改變。
3)高響應比優先排程演算法hrrn
v 短作業優先演算法是一種比較好的演算法(相當於根據作業長度設定的靜態優先權演算法),適用於短作業較多的批處理系統中,其主要不足是長作業的執行得不到保證。
v hrrn為每個作業引入動態優先權,使作業的優先順序隨著等待時間的增加而以速率a提高:
優先權 =(等待時間+要求服務時間)/要求服務時間
= 響應時間 / 要求服務時間
v 作業a先執行20分鐘,作業b由於優先順序高搶占執行,(此時a中止)由於只允許兩道批處理,所以直到b執行完畢後,才能排程下乙個作業;
v b執行完畢後,按照短作業優先的方式,將d調入記憶體,由於d的優先順序低於a,所以此時a繼續執行,d等待;
v 待a執行完畢之後,將c調入記憶體,由於c的優先順序高,所以c執行,d繼續等待,直到c執行完畢後,d才執行,直至結束。
三、實時排程
實現實時排程的基本條件
1)提供必要的資訊
為了實現實時排程,系統應向排程程式提供有關任務的下述資訊:
v 就緒時間。該任務成為就緒狀態的時間。
v 開始截止時間、完成截止時間。
v 處理時間。從開始執行到完成所需時間。
v 資源要求。任務執行時所需的一組資源。
v 優先順序。根據任務性質賦予不同優先順序。
2)系統處理能力足夠強
處理能力不足可能會出現某些實時任務不能得到及時處理,導致難以預料的後果。
如:
系統中有m個週期性的硬實時任務,處理時間為ci,週期時間表示為pi,
3)採用搶占式排程機制
v 硬實時任務:廣泛採用搶占機制。
v 小的實時系統:如能預知任務的開始截止時間,為簡化排程程式和對任務排程時所花費的系統開銷,可採用非搶占排程機制,
實時排程演算法的分類
非搶占式輪轉排程演算法。常用於工業生產的群控系統中,要求不太嚴格。
非搶占式優先排程演算法。要求相對嚴格,根據任務的優先順序安排等待位置。可用於有一定要求的實時控制系統中。(精心設定可獲得百ms級的響應時間)
處理機排程與死鎖
1.程序排程的功能 儲存處理機的現場資訊,按某種演算法選取程序,把處理器分配給程序 2 程序排程方式 非搶占方式 一旦把處理機分配給某程序後,不管它要執行多長時間,都一直讓它執行下去,決不會因為時鐘中斷等原因而搶占正在執行程序的處理機,也不允許 其它程序搶占已經分配給它的處理機。直至該程序完成,自願...
課後習題 處理機排程與死鎖
part a 高階排程與低階排程的主要任務是什麼,為什麼要引進中級排程?高階排程又稱為作業排程,用於決定把外存後備佇列中的那些作業調入記憶體,為它們分配必要的資源,並建立程序 低階排程又稱為程序排程,用來決定就緒佇列中哪個程序先獲得處理機,並將處理機分配給選中的程序,然他投入執行 中級排程又稱為記憶...
第三章處理機排程與死鎖 處理機排程
一 處理機排程的基本概念 作業進入系統駐留在外存的後備佇列上,再至調入記憶體執行完畢,可能要經歷下述 排程。又稱作業排程或長程排程 long term scheduling 接納排程 admission scheduling 主要在早期批處理階段,處理在外存上的作業。決定外存後備佇列中的哪些作業調入...