計算機作業系統第三章 處理機排程和死鎖
處理機排程的層次
2.低階排程:程序排程或短程排程,決定就緒佇列中哪個程序獲得處理機。最基本的排程,多批道處理,分時和實時OS都有
3.中級排程:記憶體排程,提高記憶體利用率和系統吞吐量。儲存器管理中的對換功能。
1.高階排程
決定後備佇列中調入主存的作業多少作業:取決於多道程式度接納哪些作業:取決於排程演算法。主要用於多批道處理程式。
2.中級排程
記憶體排程,提高記憶體利用率和系統吞吐量
快閃記憶體中把暫時不執行的換出外存
決定那些程序被允許參與競爭CPU
處於掛起狀態
引入原因
1.換出 :使用者作業由輸入裝置向系統外存輸入時作業所處的狀態
- 記憶體空間緊張
- 就緒佇列程序太多
- 等待I/O可能要一段時間
- 便於緊縮
2.換入:
- 記憶體中有足夠的空間
- 外存中程序的優先順序高於記憶體中程序
3.低階排程
- 就緒佇列中分配處理機
- 程序排程
方式
1.搶佔式
原則:
優先權
短作業優先
時間片
2.非搶佔式
簡單、系統開銷小、無法處理緊急情況
作業狀態
- 提交狀態 使用者作業由輸入裝置向系統外存輸入時作業所處的狀態
- 後備狀態
- 執行狀態
- 完成狀態
只有低階排程是必須的
排程佇列模型和排程準則
排程佇列模型
一級
二級
三級
選擇排程方式和排程演算法的若干準則
1.面向系統的準則
系統吞吐量
CPU利用率
各類資源的平衡利用
2.面向使用者的準則
週轉時間短
等待時間和執行時間之和
帶權週轉時間:和實際時間的比值
- 相應時間快
- 截止時間的保證
- 穩定性
演算法的效能準則
- 易於實現
- 執行開銷比
排程演算法
1.先來先服務和短作業(程序)優先排程演算法
短作業優先是當前時刻的短時間
多個作業同時到達時,短作業優先排程演算法的平均週轉時間最小
2.最短剩餘時間優先排程演算法
即當一個新程序進入就緒佇列時,若其需要的執行時間比當前執行程序的剩餘時間短,
則它將搶佔CPU
3.高優先權優先排程演算法
- 搶佔式
- 非搶佔式
- 優先權
靜態優先權
動態優先權
4.最高相應比優先排程演算法
響應比: 等待時間+要求服務時間/ 要求服務時間
5.基於時間片的輪轉排程演算法
最開始的在隊首,執行完時間片到隊尾
時間片過大 太大退化為先來先服務,會讓隊尾的程序等待過久
時間片過小 程序切換過於頻繁,系統的開銷過大
多級反饋佇列排程演算法
設定多個佇列
優先順序越高,執行時間越短
在第一個佇列執行完以後再執行第二個佇列
執行過的程序放到最後一個佇列的末尾
處理機排程演算法的目標:
1.處理及排程演算法的共同目標:
資源利用率
公平性
平衡性
策略強制執行
2.批處理系統的目標
平均週轉時間
系統吞吐量高
處理機利用率高。
3.分時系統的目標
響應時間快
均衡性
4.實時系統的目標
截止時間的保證
可預測性。
實時排程
1.實現實時排程的基本條件
- 提供必要的資訊
- 系統處理能力強
- 採用搶佔式排程機制
- 具有快速切換機制
2.實時排程演算法的分類
2.1非搶佔式排程演算法
非搶佔式輪狀排程演算法
非搶佔式優先排程演算法
2.2搶佔式排程演算法
基於時鐘中斷的搶佔式優先權排程演算法 等系統的時鐘中斷才會搶佔
立即搶佔的優先權排程演算法 :當前任務未處於臨界區,便能立即剝奪當前任務執行。
3.常用的幾種實時排程演算法
最早截止時間優先
最低鬆弛度優先
鬆弛度 :必須完成時間-本身執行需要時間-當前時間
鬆弛度小的優先。
搶佔式的
產生死鎖的原因和必要條件
產生死鎖的原因
- 競爭資源
- 可剝奪資源與不可剝奪
- 永久性和臨時性
- 不可剝奪、永久性和臨時性資源可造成死鎖
- 程序推進順序不當
死鎖 ; 多個程序因競爭系統資源而造成的一種僵局,如果沒有外力作用,這些程序永遠不能向前推進
產生死鎖的必要條件
- 互斥條件
- 請求和保持條件
- 不可剝奪條件
- 環路等待條件
處理死鎖的基本方法
1.預防死鎖
預防死鎖的方法
1.互斥?
是裝置本身固有的屬性
不可修改
2.請求和保持條件
靜態資源分配法
一次分配所用的全部資源
資源利用率低,程序延遲
3.摒棄“不可剝奪”
已有該資源的程序要求釋放資源
只可用於狀態可以儲存和恢復的資源
4.摒棄“環路等待”
- 有序資源分配 :程序申請一個資源的時候,必須釋放其佔有序號大於該資源的其他資源
- 資源利用率提高(還是存在浪費)
- 限制了使用者程式設計
- 限制了裝置的增加
2.避免死鎖
系統安全狀態 :只要系統始終都處於安全狀態便可避免死鎖的發生
利用銀行家演算法避免死鎖
1. 通過對資源分配進行分析
2. 如果有任何一個程序的資源需求滿足現有資源儲備量,則可分配,並釋放佔用的資源 重複1
3.如果所有程序可全部被釋放,則處於安全狀態
檢測死鎖和解除
3.死鎖的檢測
1.資源分配圖
用圓圈代表程序
方框表示一類資源
方框中一個點代表一類資源的一個例項
從程序到資源表示程序請求一個該類資源
從資源指向程序表示有一個資源分配給該程序
2.檢測
不可完全簡化即死鎖
完全簡化即形成孤立結點
可以獲取到想要的資源則移除請求邊和分配邊
死鎖的解除
- 資源剝奪法
- 撤銷程序法
4.不考慮此問題