轉載於:http://blog.csdn.net/qq_28602957/article/details/53375281
作業和作業步
作業 (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。
例如: