第五章 資源分配與排程
5.1 資源管理概述
5.1.1&&5.1.2
資源管理目的:為使用者提供一種簡單而有效地使用資源的方法
任務:1、資源資料結構的描述
2、確定資源的分配原則和排程原則
3、執行資源分配
4、訪問控制和安全保護
作業系統對資源區分兩種不同的概念
①物理資源——系統中那些物理、可實際使用的資源
②虛擬資源——邏輯資源。是經過作業系統改造的、使用者看到的,使用方便的虛資源
目的:①方便使用者使用 ②資源可動態分配,提高資源利用率
5.2 資源管理的機制和策略
5.2.1&&5.2.2
資源分配機制
資源描述器:描述各類資源的最小分配單位的資料結構
資源資訊塊:描述某類資源的請求者、可利用的資源以及該類資源分配程式的位址
資源分配策略:在眾多個請求者中選乙個滿足條件的請求者原則
資源分配策略具體如何體現?
體現在資源請求佇列的排序原則上
(1)先請求先服務策略(fifo)
①排序原則——按請求的先後次序排序:每乙個新產生的請求均排在資源請求佇列的隊尾。
②資源可用時的處理:資源可用時,取資源請求佇列隊首元素,將該資源分配給請求者。
(2)優先排程策略
①排序原則——按請求的優先順序高低排序
對每乙個程序制定乙個優先順序
按優先順序的高低排序——每乙個新產生的請求按對應程序的優先順序高低插入到佇列的相應位置。
(3)針對裝置特性的排程策略
排程目標:當有大量的i/o請求時,降低完成這些i/o服務的總時間
移臂排程:最短尋道時間優先演算法(sstf)、掃瞄演算法(scan)
旋轉排程
如何確定移動臂磁碟組中磁碟塊的物理位置
5.3 死鎖
a5.3.1 死鎖的定義與例子
死鎖:兩個或多個併發程序中,如果每個程序持有某種資源而又都等待著別的程序釋放它或它們現在保持著的資源,否則就不能向前推進。此時稱這一組程序為死鎖。
5.3.2 引起死鎖的原因和必要條件
引起死鎖的原因:
①系統資源不足
②程序推進順序非法
產生死鎖的必要條件
①互斥條件——涉及的資源是非共享的,即為臨界資源
②不剝奪條件——程序所獲得的資源在未使用完畢之前,不能被其它程序強行奪走
③部分分配——程序每次申請它所需要的一部分資源。在等待新資源的同時,程序繼續占用已分配到的資源
④環路條件——存在一種程序的迴圈鏈,鏈中的每乙個程序已獲得的資源同時被鏈中下乙個程序所請求
5.3.3 系統模型和死鎖的處理
(1)資源請求矩陣:
在時刻t資源請求矩陣
d(t)=
d11 d12 … d1m
d21 d22 … d2m
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
dn1 dn2 … dnm
dij表示程序pi還需要j類資源的數目
(2)資源分配矩陣:
在時刻t資源分配矩陣
a(t)=
a11 a12 … a1m
a21 a22 … a2m
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
an1 an2 … anm
aij表示程序pi已占用j類資源的數目
(3)什麼情況下系統是安全的
當程序請求某類資源時,程序對該類資源的最大需求量小於當前時刻系統所擁有的該類資源的數目,那麼滿足程序的這次請求,系統是安全的
系統的安全狀態描述:按某種順序,併發程序都能達到獲得全部資源而順序完成的序列稱為安全序列,能找到安全序列的狀態為安全狀態。
5.3.4 解決死鎖問題的策略
為了使系統不發生死鎖,必須要破壞產生死鎖的四個必要條件之一
①採用資源靜態分配方法預防死鎖
②採用資源動態分配、有控分配方法來避免死鎖
③當死鎖發生時檢測出死鎖,並設法修復
④忽略死鎖,一旦發生死鎖便重啟系統(這種方法被絕大多數作業系統所採用)
5.3.5 死鎖的預防
死鎖的預防分為靜態預防和動態避免
死鎖的靜態預防就是採用資源預先分配方式。系統在應用程式進入系統前分配它所需要的所有資源,當資源一旦分配給該應用程式後,在其整個執行期間這些資源為它獨佔。
5.3.6 死鎖的避免
死鎖的動態避免就是採用資源動態分配的方式
①有序資源分配方法:系統中所有資源都給乙個唯一的編號,所有分配請求必須以上公升的次序進行,當遵守上公升次序的規則時,若資源可用,則予以分配;否則,請求者等待。
②銀行家演算法:申請者事先說明對各類資源的最大需求量。在程序活動期間動態申請某類資源時,由系統審查現有該類資源的數目是否能滿足當前程序的最大需求量,如能滿足就予以分配,否則拒絕。
例:擁有某類資源10個,現有p、q、r共享該類資源,申請該類資源的需求量如下。
程序 最大需求量 已占有資源 現申請資源個數
p 8 4 1
q 4 2 1
r 9 2 1
已占有的資源總數:4+2+2=8個
還剩下的資源數:10-8=2個
計算程序還需要的資源數:
p:8-4=4個
q:4-2=2個
r:9-2=7個
∵現擁有2個剩餘資源數
又∵q還需要的資源數為2×1=2個(乘的1為現申請的資源個數)
∴只有q符合條件,分配給q
5.3.7 死鎖的檢測與忽略
作業系統原理第五章(資源分配與排程)
一 資源管理 1.資源的動態分配 程序所需的資源是在程序執行中根據運 況動態的分配 使用和釋放的。靜態分配 批處理作業系統中,對作業一級採用資源靜態分配方法。作業所需要的資源是在排程到這個作業的時候,根據使用者給出的資訊進行分配,並在做作業執行完畢後釋放所獲得的的全部資源。2.資源管理任務 對資源資...
作業系統概念 第五章 CPU排程
排程準則 排程演算法 演算法評估 待補完 對於單處理器系統,cpu只能執行乙個程序,其他程序必須等待,直到cpu空閒為止。多道程式的目標是為了使任何時候都有程序在執行,使cpu的利用率最大化。cpu排程使程序在等待時 通常是等待某些io請求完成 從該程序拿走cpu的使用權交給另乙個程序,如此迴圈往復...
作業系統第五章
虛擬儲存器的基本概念 引入 實現 特徵 請求分頁儲存管理方式 硬體支援 位址變換 分配演算法 頁面置換演算法 效能分析 請求分段儲存管理方式 主要相同點是都要在記憶體與外存之間交換資訊 主要區別在於交換技術換出換進一般是整個程序 proc結構和共享正文段除外 因此乙個程序的大小受物理儲存器的限制 而...