批處理作業的管理
批次作業是指無需使用者乾預,由作業系統自動處理的一類作業。批次作業的主要目的是提高系統的效率,透過集中處理一批作業,減少系統的空閒時間和使用者的等待時間。批次作業管理涉及三個主要功能:作業輸入、作業排程和作業控制。
批次作業的輸入
作業輸入
- 定義:將使用者提交的作業裝入輔存輸入井(如磁碟),並形成後備作業佇列。系統依照作業進入輸入井的順序排隊等待調度執行。
- 作業輸入資訊通常包括:
- 原始程式:待編譯和執行的程式碼。
- 初始資料:用於程式執行所需的輸入資料。
- 作業控制說明書:描述作業執行步驟的說明書,以作業控制語言撰寫。
作業控制語言(JCL)
- 定義:是一種描述作業執行過程的程式語言,用於批次處理系統中。使用者透過JCL指定作業的執行步驟和所需資源。
- 功能:
- 作業的提交:描述作業的開始和結束。
- 作業與作業步驟的執行控制:指定作業的執行順序與依賴關係。
- 資源使用控制:指定作業執行時所需的硬體和軟體資源。
作業控制區塊(JCB)
- 定義:作業在系統中存在的標識,包含作業的各種屬性和狀態資訊。
- 主要內容:
- 作業名稱、作業狀態
- 作業優先順序、類別
- 所需資源(主存、週邊)
- 作業的時間資訊(提交時間、開始時間、結束時間)
- 用途:用於系統的輸入程式、作業排程器、作業控製程式等存取作業資訊。
作業表
- 定義:由所有作業的JCB所構成的集合,存放於輔存中,用於系統管理和查詢作業資訊。
批次作業調度
作業排程程序
- 定義:用於控製作業排程的程序,根據某種排程演算法從後備作業佇列中選擇適當的作業進行執行。
- 主要任務:
- 選擇作業:從後備作業佇列中選取作業進行執行。
- 資源分配:為選取的作業指派主存和周邊等必要資源。
- 準備執行:為作業建立作業控制區塊和進程控制區塊,準備執行。
- 善後處理:當作業結束或撤銷時,釋放資源,更新作業狀態。
作業狀態
作業在系統中的狀態可以分為以下幾種:
- 提交狀態:作業剛被提交到系統,等待進入後備佇列。
- 後備狀態:作業在輸入井中等待調度。
- 運行狀態:作業被排程器選中,分配資源後進入執行狀態。
- 完成狀態:作業執行完畢,資源被釋放,作業退出系統。
作業排程的影響因素
- 公平性:確保系統資源在使用者之間公平分配。
- 均衡使用資源:合理調度作業,使系統資源平衡使用。
- 提高系統吞吐量:最大化單位時間內完成的作業數量。
- 平衡系統和使用者需求:兼顧系統效能和使用者體驗。
作業排程的效能指標
- CPU利用率:CPU的有效工作時間佔總時間的比例。
- 吞吐量:單位時間內系統完成的作業數量。
- 週轉時間:從作業進入系統到完成的總時間。
- 平均週轉時間:所有作業的周轉時間的平均值。
\[
T = \frac{1}{n} \sum_{i=1}^{n} T_i
\]
T:表示平均週轉時間。 n:表示作業的總數。 \( T_{i} \):表示第 i 個作業的周轉時間。
- 帶權平均週轉時間:考慮作業執行時間的比重,使短作業優先。
\[
W = \frac{1}{n} \sum_{i=1}^{n} W_i
\]
W:表示平均等待時間。 n:表示作業的總數。 \( W_{i} \):表示第 i 個作業的等待時間。
批次作業排程的三級排程
- 進階調度(作業排程):選擇哪些作業從後備佇列進入主記憶體執行。
- 中階調度:控制主記憶體中進程的數量,透過換入換出進程以平衡記憶體使用。
- 低階調度(進程調度):選擇就緒佇列中的程序分配CPU執行。
批次作業控制
批次作業的執行
- 作業執行過程:當作業被排程器選取後,系統為其建立一個作業控制流程,負責具體的作業運行控制。
- 運作控制:系統依照作業控制說明書逐步執行各作業步,直到作業完成。
批次作業的終止與撤銷
- 作業終止:當作業成功完成或發生異常時,系統會進行資源釋放、更新作業狀態,並繼續下一個作業排程。
- 作業撤銷:在發生嚴重錯誤或使用者要求中止時,系統強制停止作業執行,並進行善後處理。