作業排程是從處於「後備」狀態的佇列中選取作業投入執行。一個作業從交給電腦系統到執行結束退出系統,一般都要經歷提交、後備、執行和完成四個狀態。後備狀態是指把作業的全部資訊進入外存後,為進入系統的作業建立作業控制區塊,並把它加入到後備作業佇列中,等候作業排程器排程;而當作業被作業排程器選中,且分配了必要的資源,建立一組對應的行程後,作業就進入了執行狀態。
本教學操作環境:windows7系統、Dell G3電腦。
作業排程的主要功能是根據作業控制區塊中的信息,審查系統能否滿足使用者作業的資源需求,以及依照一定的演算法,從外存的後備佇列中選取某些作業調入內存,並為它們創建進程、分配必要的資源。然後再將新建立的進程插入就緒佇列,準備執行。因此,有時也把作業調度稱為接納調度。
作業狀態
作業從進入系統到運作結束,一般要經歷進入、收容、運作、完成四個階段。相應地,一個作業從交給電腦系統到執行結束退出系統,一般都要經歷提交、後備、執行和完成四個狀態。
進入狀態:即提交狀態,作業由輸入設備進入外記憶體(也稱為輸入井)的過程;處於提交狀態的作業,其資訊正在進入系統。
後備狀態:當作業的全部資訊進入外存後,系統就為此作業建立一個作業控制區塊(JCB)。
操作員把作業輸入到直接存取的後援存取器後,為進入系統的作業建立作業控制區塊,並把它加入到後備作業佇列中,等候作業排程器排程。這個過程也稱為作業註冊。
運作狀態:作業被作業排程器選中,且分配了必要的資源,建立一組對應的行程後,作業就進入了運作狀態。它分為三種狀態:即就緒狀態、執行狀態、阻塞狀態。
一個後備作業被作業排程器選取分配了必要的資源並進入了內存,作業排程器同時為其建立了對應的進程後,該作業就由後備狀態變成了執行狀態。
完成狀態:當作業正常運作結束或因發生錯誤而終止時,作業會進入完成階段。一般來說,作業排程器需從處於後備狀態的佇列中選取適當的作業投入運行。
作業排程的步驟如下:
#(1)依據JCB屬性建立JCB控製表格,記錄作業各種工作狀態;
(2)採用選定的調度演算法,從後備作業中選出一道或多道作業投入運行;
(3)為被選取的作業做好執行前的準備工作,包括建立行程及為對應的程序指派系統資源:
(4)作業執行結束後的善後處理工作。例如狀態登記、資源回收、輸出處理、作業的撤銷。
常用的作業排程演算法
常用的作業排程演算法有先來先服務、最短作業優先法、回應比高者優先和優先數法。
(1)先來先服務(FCFS)。按作業到達的先後次序調度,它不利於短作業。
(2)短作業優先(SJF)。依作業的估計運行時間調度,估計運行時間短的作業優先調度。它不利於長作業,可能會使一個估計運行時間長的作業遲遲得不到服務。
(3)回應比高者優先(HRN)。綜合上述兩者,既考慮作業估計運行時間,又考慮作業等待時間,響應比是:HRN=(估計運行時間 等待時間)/估計運行時間。
(4)優先權調度。根據作業的優先級別,優先級高者先調度。
此外,我們還需了解幾個重要概念。
1.作業的周轉時間 作業的周轉時間是指從作業提交到作業完成之間的時間間隔。作業i的周轉時間 Ti可用公式表示如下: Ti=Tei-Tsi 其中Tei為作業i的完成時間,Tsi為作業i的提交時間。
2.平均週轉時間 平均週轉時間是指多個作業的周轉時間的平均值。 n個作業的平均週轉時間了可用公式表示如下: T=(T1 T2 … Tn)/n
3.帶權週轉時間 帶權週轉時間是指作業週轉時間與作業實際運作時間的比。作業i的帶權週轉時間 Wi可用公式表示如下: Wi=Ti/Tri其中Ti為作業i的周轉時間,Tri為作業i的實際運行時間。
4.平均帶權週轉時間 平均帶權週轉時間是指多個作業的帶權週轉時間的平均值。
更多相關知識,請造訪常見問題欄位!
以上是作業排程器是從處於什麼狀態的佇列中選取作業投入執行的詳細內容。更多資訊請關注PHP中文網其他相關文章!