操作系統3_作業與處理機調度
文章目錄
- 操作系統3_作業與處理機調度
- 1. 作業的概念與組成
- 2. 作業的建立及狀態
- 3. 處理機調度相關概念
- 3.1 調度級別
- 3.2 調度隊列模型
- 3.3 選擇準則
- 4. 作業調度與進程調度
- 5. 典型處理機調度算法
- 5.1 先來先服務算法FCFS
- 5.2 短作業優先算法SJF
- 5.3 優先級調度算法HPF
- 5.4 最高響應比優先調度算法HRRN
- 5.5 時間片輪轉調度算法RR
- 5.6 多級反饋隊列輪轉法RRMF
- 6. 實時系統調度算法
- 6.1 實時調度基本條件
- 6.2 調度算法分類
- 6.3 常用實時調度算法
- 7. 死鎖概念及產生原因
- 8. 死鎖存在的條件
- 9. 預防死鎖
- 10. 避免死鎖(重點)
- 11. 檢測死鎖
- 12. 解除死鎖
- 13. 本章重點
1. 作業的概念與組成
-
作業的概念
- 用戶角度:在一次應用業務處理過程中,從輸入開始到輸出結束,用戶要求計算機所做的有關該次業務處理的全部工作稱為一個作業
- 系統角度:作業是一個比程序更廣的概念,它由程序、數據和作業說明書組成
- 作業概念使用場合:
- 早期批處理系統
- 現在的大型機、巨型機系統
- 對于微機和工作站系統一般不使用作業的概念
-
作業的組成
-
程序:可以包含多個程序和多個數據集,但必須至少包含一個程序
-
數據:可有可無
-
作業說明書:
- 基本信息:用戶名、作業名、使用語言名、允許的最大處理時間
- 控制信息:作業控制、操作順序、出錯處理
- 資源信息:處理時間、內存、外設類型和數量、處理機優先級、庫函數和實用程序
-
2. 作業的建立及狀態
-
作業建立的步驟
- 作業的輸入:指將作業的程序、數據和作業說明書從輸入設備輸入到外存,并形成有關初始信息
- 聯機輸入
- 脫機輸入
- 直接耦合輸入
- SPOOLING系統
- 作業控制塊的建立:由作業注冊程序在系統中為該作業申請一個作業控制塊,并填寫響應的信息
- 建立時機:作業進入外存輸入后
- 建立步驟:
- 申請作業控制塊
- 填寫作業控制塊相關信息:作業名、作業估計執行時間;優先數、作業建立時間;作業說明書文件名、程序語言類型;內存要求、外設要求;作業狀態以及作業在外存中的存儲地址
- 作業的輸入:指將作業的程序、數據和作業說明書從輸入設備輸入到外存,并形成有關初始信息
-
作業的狀態
- 提交狀態:從作業輸入請求開始到JCB建立時的狀態
- 后備狀態:從PCB建立到被作業調度程序選中并進入內存,作業在作業等待隊列中的狀態
- 執行狀態:作業進入內存后到執行結束
- 完成狀態:作業執行結束到撤銷之前作業所處的狀態
-
作業與進程的關系
- 作業是用戶向計算機系統提交任務的任務實體,而進程則是完成用戶任務的執行實體,是向系統申請分配資源的基本單位
- 作業在沒有進入執行狀態時被存入外存的后備作業隊列中等待調度執行,進程一旦被創建,總有相應部分放入內存
- 一個作業可由多個進程組成,且必須至少由一個進程組成,反之不成立
- 作業的概念應用范圍主要局限于批處理系統中,而進程的概念則應用到幾乎所有的多道程序系統中
3. 處理機調度相關概念
3.1 調度級別
-
有關作業調度
- 具體功能:
- 記錄系統中各作業的狀況
- 從后備作業隊列中挑選一部分作業投入運行
- 為被選中作業做好執行前的準備工作
- 在作業執行結束后做善后工作
- 目標:
- 具有公平性
- 具有較高的設備利用率
- 具有較高的吞吐率
- 具有較快的響應時間
- 衡量標準:
- 批處理系統:主要考察系統的平均響應時間
- 分時系統:主要考察系統的平均響應時間
- 實時系統:主要考察系統對特定事件的響應時間
- 具體功能:
-
處理機調度級別
-
低級調度/進程調度/短程調度/微觀調度
- 功能:用來決定就緒列表中的哪個進程應獲得處理機
- 分類:
- 非搶占方式Non-Preemptive Mode:優點(實現簡單、系統開銷小,適用于大多數的批處理系統環境)和缺點(難以滿足緊急任務的要求立即執行,可能造成難以預料的后果,在要求比較嚴格的實時系統中不宜采用這種調度方式)
- 搶占方式Preemptive Mode:原則(優先權原則、短作業/進程優先原則、時間片原則)
-
中級調度/中程調度/交換調度
- 功能:把暫時不能運行的進程調至外存上去等待,此時進程處于靜止阻塞狀態;當這些進程重新具備運行條件、且內存又稍有空閑時,由中級調度來決定將其重新調入內存,并修改其狀態為就緒狀態,掛在就緒隊列上等待進程調度
- 引入目的:提高內存利用率和系統吞吐量
-
高級調度/作業調度/長程調度/接納調度/宏觀調度
- 功能:從外存中選擇作業進入內存
- 考慮因素:接納多少個作業、接納哪些作業
-
3.2 調度隊列模型
-
進程調度隊列模型
-
高級和低級調度的隊列模型
-
區別
具有高級、低級兩種調度的調度隊列模型與單一進程調度隊列模型的主要區別在于如下兩方面:
- 就緒隊列的形式
- 設置多個阻塞隊列
-
具有三級調度的調度隊列模型