【作業系統】作業排程(高階排程)
作業和作業步
作業 (job)
- 作業是把命令、程式和資料按照預先確定的次序結合在一起,並提交給系統的一個組織單位。
- 或者:作業是使用者交給系統的具有獨立功能的任務。
- 作業:程式和資料 + 作業說明書
- 在批處理系統中,是以作業為基本單位從外存調入記憶體
的。
作業步 (job step)
一個典型的作業可分成三個作業步:
1.“編譯”作業步;
2.“連結裝配”作業步;
3.“執行”作業步。
作業控制塊 JCB
在多道批處理系統中通常有上百個作業,為了管理和排程作業,系統為每個作業設定了一個作業控制塊(JCB),它記錄該作業的有關資訊。不同系統的 JCB的組成內容有所區別。
JCB 是作業在系統中存在的唯一標誌。作業進入系統時由系統為每個作業建立一個 JCB;當作業退出系統時,則它的 JCB 也一起被撤消。
作業執行的三個階段和三種狀態
收容階段
當用戶完成作業的提交,作業存在於外存中,系統建立JCB。在它還未被排程去執行前,該作業處於後備狀態。
執行階段
作業被排程進入記憶體,並以程序的形式存在,其狀態是執行狀態。處於執行狀態的作業可以有多個。
處於執行狀態的作業並不意味著一定在 CPU 上執行,是否執行依賴於程序控制。
完成階段
當作業已經完成其指定的功能,便進入停止狀態,系統回收已分配資源。
作業排程的主要任務
接納多少作業
- 即多道程式的“道”。
- 太多則可能會影響系統的服務質量(如週轉時間太長),太少又將導致系統資源利用率和吞吐量的下降。
- 根據系統的規模和執行速度來確定,同時要求 I/O 型程序與 CPU 型程序中和排程。
接納哪些作業
取決於採用何種排程演算法(先來先服務、短作業優先等)
先來先服務排程演算法 FCFS
基本思想
按程序(作業)進入就緒(後備)佇列的先後次序來分配處理機(為其建立程序)。
一般採用非剝奪的排程方式。
例如:
FCFS 排程演算法的平均作業週轉時間與作業提交的順序有關。
FCFS 排程演算法的特點:
- 簡單,但效率不高。
- 有利於 CPU 繁忙型作業。
- 不利於 I/O 繁忙型作業。
- 現在作業系統中,已很少用該演算法作為主要排程策略,尤其是在分時系- 統和實時系統中。但它常被結合在其它排程策略中使用。
短作業優先排程演算法(SJF)
- 用於作業排程
- 主要任務是從後備佇列中選擇一個或若干個估計執行時間最短的作業,-將它們調入記憶體執行。
- 類似地,用於程序排程的是短程序優先排程演算法(SPF)
例如
FCFS 與 SJF 的比較
短作業優先排程演算法的優缺點
優點
- 能有效降低作業的平均等待時間。
- 能有效縮短程序的平均週轉時間。
- 提高了吞吐量。
缺點
- 對長作業不利。
- 沒有考慮作業的緊迫程度。
- 作業執行時間、剩餘時間僅為估計。
SJF 演算法雖然是優化的,但在 CPU 排程中很難實現。
優先順序排程演算法
對於 FCFS,等待時間是優先順序。對於 SJF,作業的長短是優先順序。
優先順序排程演算法(Priority-Scheduling Algorithm, PSA)以作業的緊迫程度為優先順序。
系統選擇優先順序最高的幾個作業裝入記憶體。
優先順序排程演算法也用於程序排程,系統在可執行的程序中選擇優先順序最高者使其投入執行。
優先順序的型別
- 靜態優先順序
- 動態優先順序
靜態優先順序
優先權在建立程序時確定,且在程序的整個執行期間保持不變。一般用整數表示,小表示優先順序高。
確定原則:
- 程序型別(系統程序 > 使用者程序)
- 程序對資源的需求(要求少的有較高的優先權)
- 使用者要求(緊急程度和付費情況)
優點:簡單,開銷小。
缺點:公平性差(對低優先權程序)
動態優先順序
動態優先順序在程序的存在過程中不斷髮生變化。
動態優先順序的變化取決於:
- 程序的等待時間
- 程序的執行時間
- 程序使用資源的情況
動態優先權確定方法的資源利用率高,公平性好,但開銷較大,實現較為複雜。
高響應比優先演算法 (HRRN)採用動態優先權。
高響應比優先排程演算法
FCFS 只考慮了作業的等待時間,忽略了執行時間。SJF 只考慮了作業的執行時間,忽略了等待時間。
高響應比優先排程演算法(Highest Response Ratio Next,HRRN) 既考慮了作業的等待時間,也考慮了作業的執行時間,是一種動態優先順序排程演算法。
週轉時間:從提交到完成的時間間隔。響應時間:在互動式系統中,從提交請求到產生首次響應的時間,而不是到產生輸出結果所需的時間。
如等待時間相同,則要求服務時間越短其優先權越高→SJF。
如要求服務時間相同,優先權決定於等待時間→FCFS。
對長作業,若等待時間足夠長,優先權也高,也能獲得CPU。
例如: