複製鏈接
請複製以下鏈接發送給好友

作業週期

鎖定
作業是一個比程序更為廣泛的概念,它不僅包含了通常的程序和數據,而且還應配有一份作業説明書,系統根據該説明書來對程序的運行進行控制。在批處理系統中,是以作業為基本單位從外存調入內存的。作業週期是一個作業從提交、讀取、緩存、調度、執行、輸出、到釋放的一個完整循環過程。
中文名
作業週期
外文名
Job Cycle
學    科
計算機
定    義
作業從提交到釋放一系列過程
有關術語
作業、作業控制塊
領    域
操作系統

作業週期簡介

作業週期是指作業從提交到釋放所花的時間。在計算機中,系統將作業的生命週期分為四個階段:進入階段、調度階段、運行階段和撤離階段,對應地,作業也有進入、後備、運行和撤離四個狀態 [1]  。在作業週期的四個階段中,最重要的是作業調度階段,它是影響作業週期長短的關鍵。作業週期還與作業的類型和作業優先級有關。一般短作業週期短,長作業週期較長。

作業週期優先級

優先級是指計算機分時操作系統在處理多個作業程序時,決定各個作業程序接受系統資源的優先等級的參數。各個作業在輸入計算機之前,都要按一定的要求對它指定優先級。例如要按程序的性質或其長度,或是按作業的來源等,指定其優先級。然後計算機根據各作業程序優先級的高低,來決定處理各作業的先後次序。甚至在處理過程中,還能允許優先級較高的作業中斷優先級較低的作業。進程也是有優先級的。如果即將被運行的進程的優先級比正在運行的進程的優先級高,則系統可以強行剝奪正在運行的進程的CPU,讓優先級高的進程先運行。

作業週期作業調度

作業調度的主要功能是根據作業控制塊中的信息,審查系統能否滿足用户作業的資源需求,以及按照一定的算法,從外存的後備隊列中選取某些作業調入內存,併為它們創建進程、分配必要的資源。然後再將新創建的進程插入就緒隊列,準備執行。因此,有時也把作業調度稱為接納調度(Admission Scheduling)。
對用户而言,總希望自己作業的週轉時間儘可能的少,最好週轉時間就等於作業的執行時間。然而對系統來説,則希望作業的平均週轉時間儘可能少,有利於提高 CPU 的利用率和系統的吞吐量。為此,每個系統在選擇作業調度算法時,既應考慮用户的要求,又能確保系統具有較高的效率。在每次執行作業調度時,都須做出以下兩個決定。

作業週期決定接納多少個作業

作業調度每次要接納多少個作業進入內存, 取決於多道程序度(Degree of Multiprogramming),即允許多少個作業同時在內存中運行。當內存中同時運行的作業數目太多時,可能會影響到系統的服務質量,比如,使週轉時間太長。但如果在內存中同時運行作業的數量太少時,又會導致系統的資源利用率和系統吞吐量太低,因此,多道程序度的確定應根據系統的規模和運行速度等情況做適當的折衷。 [2] 

作業週期決定接納哪些作業

應將哪些作業從外存調入內存,這將取決於所採用的調度算法。最簡單的是先來先服務調度算法,這是指將最早進入外存的作業最先調入內存;較常用的一種算法是短作業優先調度算法,是將外存上最短的作業最先調入內存;另一種較常用的是基於作業優先級的調度算法,該算法是將外存上優先級最高的作業優先調入內存;比較好的一種算法是“響應比高者優先”的調度算法。

作業週期常見調度算法

先來先服務
先來先服務(FCFS, First Come First Serve)是最簡單的調度算法,按先後順序進行調度。
定義:按照作業提交或進程變為就緒狀態的先後次序,分派CPU;當前作業或進程佔用CPU,直到執行完或阻塞,才出讓CPU(非搶佔方式)。在作業或進程喚醒後(如I/O完成),並不立即恢復執行,通常等到當前作業或進程出讓CPU。適用場景:比較有利於長作業,而不利於短作業。有利於CPU繁忙的作業,而不利於I/O繁忙的作業。
輪轉法
輪轉法(Round Robin)是讓每個進程在就緒隊列中的等待時間與享受服務的時間成正比例。定義:將系統中所有的就緒進程按照FCFS原則,排成一個隊列。每次調度時將CPU分派給隊首進程,讓其執行一個時間片。時間片的長度從幾個ms到幾百ms。在一個時間片結束時,發生時鐘中斷。調度程序據此暫停當前進程的執行,將其送到就緒隊列的末尾,並通過上下文切換執行當前的隊首進程。進程可以未使用完一個時間片,就出讓CPU(如阻塞)。時間片長度變化的影響:
過長->退化為FCFS算法,進程在一個時間片內都執行完,響應時間長。
過短->用户的一次請求需要多個時間片才能處理完,上下文切換次數增加,響應時間長。
對響應時間的要求:T(響應時間)=N(進程數目)*q(時間片)
就緒進程的數目:數目越多,時間片越小
系統的處理能力:應當使用户輸入通常在一個時間片內能處理完,否則使響應時間,平均週轉時間和平均帶權週轉時間延長。
多級反饋隊列
多級反饋隊列算法(Round Robin with Multiple Feedback)是輪轉算法和優先級算法的綜合和發展。定義:設置多個就緒隊列,分別賦予不同的優先級,如逐級降低,隊列1的優先級最高。每個隊列執行時間片的長度也不同,規定優先級越低則時間片越長,如逐級加倍。新進程進入內存後,先投入隊列1的末尾,按FCFS算法調度;若按隊列1一個時間片未能執行完,則降低投入到隊列2的末尾,同樣按FCFS算法調度;如此下去,降低到最後的隊列,則按“時間片輪轉”算法調度直到完成。僅當較高優先級的隊列為空,才調度較低優先級的隊列中的進程執行。如果進程執行時有新進程進入較高優先級的隊列,則搶先執行新進程,並把被搶先的進程投入原隊列的末尾。
參考資料
  • 1.    謝樹煜.程序員考試輔導:清華大學出版社,2005
  • 2.    湯子瀛.計算機操作系統:西安電子科技大學出版社,2010