操作系統-處理機調度與死鎖1
1.作業管理
1.1 作業的概念
作業是用戶在一次解題或一個事務處理過程中要求計算機所做工作的集合。它由程序、數據和作業說明書組成,系統通過作業說明書來控制程序和數據,並且在批處理系統中,作業是加載內存的基本單位。
作業分為脫機作業和聯機作業。脫機作業是指用戶不能直接與計算機系統交互,中間必須通過操作員干預的作業。通常在批處理系統中運行,又稱為批處理作業。聯機作業是指用戶可以通過鍵盤或控制台上的操作命令或圖形界面等方式控制作業的運行。在分時和批處理兼容的系統中,一般前端作業為聯機作業,批處理作業則為後端作業。
1.2 作業的狀態
作業有四個狀態:
(1) 提交狀態。一個作業處於從輸入設備進入外部存儲設備的過程稱為提交狀態。
(2) 後備狀態。一個作業已經全部輸入到外存中,在它被調度程序選中之間,稱為處於後備狀態。
(3) 執行狀態。作業調度程序從後備作業選取若干個作業進入內存,並為其建立進程和分配響應的資源。
(4) 完成狀態。作業已經執行完成,但是它佔用的資源還未被收回。這個狀態稱為完成狀態。這個狀態下,系統需要做一些打印結果,回收資源類似的工作。
1.3 作業管理
作業管理包括作業調度和作業控制。作業調度就是根據調度算法從後備作業中選取若干作業加載內存並運行。作業控制則是按照作業控制語言的解釋程序讀取用戶作業說明書。
-
作業控制塊JCB(Job Control Block)
作業控制塊類似於進程中的PCB,內含作業控制的有關信息。當作業進入後備狀態時,系統就會為其建立JCB。作業完成後,JCB又會被撤銷。
JCB的主要內容如下:
作業類型 計算型
理型
圖形設計型資源要求 內存量
外存量
外設類型及數量
軟件支持工具庫函數當前狀態 四個狀態 資源使用情況 進入系統的時間
開始執行時間
已運行時間
內存地址作業的優先級 作業進入系統的時間是指作業的全部信息進入了輸入井,當前狀態為後備狀態時候的時間。
-
作業表
所有的JCB都放在作業表內,作業表放在外存固定區域,通常長度是固定的。
2.分級調度
一個批處理作業,從進入系統並駐留在外存的後備隊列開始,直至作業運行完畢要經歷一下三級調度:即作業調度、對換和進程調度。
-
作業調度
又稱高級調度或長調度。用於選擇把外存上處於後備隊列的哪些作業調入內存,並未它們創建進程、分配必要的資源。再將新進程插入就緒隊列,準備執行。這個過程通常是存在于批處理系統中,因為批處理系統的作業是先駐留在外存上的,需要有作業調度的過程分批地調入內存。而分時系統為了做到及時響應用戶,用戶通過鍵盤輸入的數據和命令等通常都是直接送入內存的。實時系統通常也不需要這個過程。
-
對換
又稱交換調度或中調度。主要是按照給定的原則,將處於外存交換區中的就緒狀態或等待狀態的進程調入內存,或者反過來。交換調度主要涉及內存管理與擴充,如虛擬內存,往後會在內存管理中講到。
-
進程調度
又稱低級調度或微觀調度。按照某種算法,將處理機分配給某個處於就緒狀態的進程,在確定了佔用處理機的進程後,還要進程進程上下文的切換以建立和該進程相適應的執行環境。進程調度可分為兩種模式:
-
非搶佔方式
非搶佔方式不允許進程搶佔已經分配出去的處理機,引起進程調度的原因可能是出現了執行完成的進程;因發生了某件事而不能繼續執行的進程;執行的進程因發出了I/O請求而暫停執行;進程通信時發送了某種原語操作(如wait操作)。
-
搶佔方式
搶佔方式允許調度程序根據某些原則暫停正在執行的進程,將處理機分配給其他進程。搶佔的原則有優先權原則、短作業優先權原則和時間片原則。
-
3.作業調度
作業調度即根據審查處於後備狀態的作業JCB,根據某種作業調度程序,調取一些作業進入內存並執行。主要流程有確定數據結構、確定調度算法、分配資源和善後處理(作業執行結束時,收回該作業的所有資源,撤銷所有進程)。
Linux系統的作業一旦輸入,就直接進入內存,進入下一級的調度。因此Linux系統沒有作業調度的概念。
3.1 調度算法的評價準則
- 面向用戶的評價準則
- 周轉時間短:周轉時間即作業提交系統到作業執行完成之間的時間間隔。周轉時間越短,系統效率越高。
- 響應時間短:響應時間即用戶提交作業到系統首次產生響應的時間間隔。
- 截止時間的保證:截止時間即某個作業必須開始執行的最晚時間。
- 優先權準則
- 面向系統的評價準則
- 系統吞吐量
- 處理機利用率
- 各類資源利用率
4.進程調度
在多進程系統中,處理機需要靈活地分配給各個進程。
4.1 進程調度的時機
在並行環境下,引起進程調度的事件有:
- 完成任務
- 等待資源
- 運行時間已到
- 進入睡眠狀態
- 發現標誌:執行完系統調用,即核心處理完陷入事件以後,從系統程序返回用戶進程時,可認為系統進程執行完畢,從而調度新的用戶進程執行。
- 有更優先的進程進入
4.2 進程上下文的切換
進程的上下文由正文段、數據段、硬件寄存器的內容和有關的數據結構組成。硬件主要存放CPU將要執行的下條指令虛地址的程序計數器、指出機器和進程相關的硬件狀態的處理機狀態寄存器PS、存放過程調用時所傳遞的參數的通用寄存器R和對戰寄存器S等。