簡介
作業是一個比程式更為廣泛的概念,它不僅包含了通常的程式和數據,而且還應配有一份作業說明書,系統根據該說明書來對程式的運行進行控制。在批處理系統中,是以作業為基本單位從外存調入記憶體的。 按照作業系統處理作業階段來分。作業級是指作業還沒有被調入記憶體和創建進程這一階段。例如處理機的高級調度就屬於作業級調度。
作業級接口
作業級接口為用戶在作業一級請求作業系統服務而設定,用戶可利用這類接口組織作業的工作流程並控制作業的運行。作業級接口分為在線上接口和脫機接口。
在線上接口
在線上接口由鍵盤命令或圖形用戶界面組成。鍵盤命令是用戶以互動的方式請求作業系統服務的手段。用戶通過鍵盤和終端鍵人命令。向系統提出服務請求。作業系統的命令解釋程式負責命令的解釋和執行,並完成指定的操作。執行完畢後,控制又轉回到終端,用戶可接著鍵人下一條命令,如此反覆,直到作業完成。
圖形界面是現代計算機系統發展的潮流,通過圖形用戶界面的方式使用計算機,大大方便了用戶。
在線上控制作業的方式靈活方便,用戶可以根據運行情況隨時干預自己的作業,但系統資源的利用率不太高。
脫機接口
脫機接口由一組作業控制命令(或稱做業控制語言)組成,供脫機用戶使用。所謂脫機用戶是指用戶不能直接干預其作業的運行,而是事先把對系統的請求用作業控制語言寫成一份作業說明書,連同作業的程式和數據一起提交給系統。當系統調度到該作業執行時,由作業系統對作業說明書上的命令逐條解釋執行,直到遇到“撤銷”命令停止該作業為止。
脫機接口主要用於批處理方式,其優點是作業的操作過程由系統自動調度或由系統操作員干預,因而系統資源利用率高,系統運行作業的效率高;缺點是用戶與系統隔離,由於用戶不能控制自己作業的運行。使用戶作業的調試用期增長。
高級調度
概述
在 多道程式系統中,一個作業被提交後必須經過處理機調度後,方能獲得處理機執行。對於批量型作業而言,通常需要經歷作業調度(又稱 高級調度或長程調度)和進程調度(又稱低級調度或短程調度)兩個過程後方能獲得處理機;對於終端型作業,則通常只需經過進程調度即可獲得處理機。在較完善的作業系統中,為提高記憶體的利用率,往往還設定了中級調度(又稱中程調度)。對於上述的每一級調度,又都可採用不同的調度方式和調度算法。對於一個批處理型作業,從進入系統並駐留在外存的後備佇列開始,直至作業運行完畢,可能要經歷上述的三級調度。
高級調度(High Level Scheduling)又稱為作業調度或長程調度(LongTerm Scheduling),其主要功能是根據某種算法,把外存上處於後備佇列中的那些作業調入記憶體,也就是說,它的調度對象是作業。
作業調度
作業調度的主要功能是根據作業控制塊中的信息,審查系統能否滿足用戶作業的資源需求,以及按照一定的算法,從外存的後備佇列中選取某些作業調入記憶體,並為它們創建進程、分配必要的資源。然後再將新創建的進程插入就緒佇列,準備執行。因此,有時也把作業調度稱為接納調度(Admission Scheduling)。
對用戶而言,總希望自己作業的周轉時間儘可能的少,最好周轉時間就等於作業的執行時間。然而對系統來說,則希望作業的平均周轉時間儘可能少,有利於提高 CPU 的利用率和系統的吞吐量。為此,每個系統在選擇作業調度算法時,既應考慮用戶的要求,又能確保系統具有較高的效率。在每次執行作業調度時,都須做出以下兩個決定。
1) 決定接納多少個作業
作業調度每次要接納多少個作業進入記憶體, 取決於多道程式度(Degree of Multiprogramming),即允許多少個作業同時在記憶體中運行。當記憶體中同時運行的作業數目太多時,可能會影響到系統的服務質量,比如,使周轉時間太長。但如果在記憶體中同時運行作業的數量太少時,又會導致系統的資源利用率和系統吞吐量太低,因此,多道程式度的確定應根據系統的規模和運行速度等情況做適當的折衷。
2) 決定接納哪些作業
應將哪些作業從外存調入記憶體,這將取決於所採用的調度算法。最簡單的是先來先服務調度算法,這是指將最早進入外存的作業最先調入記憶體;較常用的一種算法是短作業優先調度算法,是將外存上最短的作業最先調入記憶體;另一種較常用的是基於作業優先權的調度算法,該算法是將外存上優先權最高的作業優先調入記憶體;比較好的一種算法是“回響比高者優先”的調度算法。