freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)第五章死鎖與饑餓-文庫吧資料

2025-05-21 23:52本頁面
  

【正文】 t[1]=(1,0,2) (2) P1請求資源 : P1發(fā)出請求向量 Request(1, 0, 2),系統(tǒng)按銀行家算法進行檢查: ① Request(1, 0, 2)≤Need(1, 2, 2) ② Request(1, 0, 2)≤Available(3, 3, 2) ③ 系統(tǒng)先假定可為 P1分配資源 , 并修改 Available, Allocation1和 Need1向量 ④ 再利用安全性算法檢查此時系統(tǒng)是否安全 。 Finish:=false。 當有足夠資源分配給進程時 , 再令 Finish[ i] =true。 ② Finish: 用于記錄進程 P1, P2, ……, Pn是否可運行完成 。 如果安全 , 則真正實施分配;如果不安全 , 則取消預分配 。 (4)通過調(diào)用 安全性算法 判斷 此次分配 是否要真正實施 。 Allocation[ i,j] =Allocation[ i,j] +Requesti[ j] 。 (2) 如果 Request[ j] ≤Available[ j] , 便轉(zhuǎn)向步驟 (3);否則 , 表示尚無足夠資源 , Pi須等待 。 臨時變量: ⑥ Work: array[1..m]of integer。 //尚需資源 ? Need[i,j]=k表示進程 Pi還需要分得 k個 Rj類資源才能完成其任務 ⑤ Request: array[1..n,1..m]of integer。 //當前分配 ? Allocation[i,j]=k表示進程 Pi當前已分得 k個 Rj類資源。 //進程最大需求 ? Claim[ i,j ]=k表示進程 Pi最多需要資源類 Rj中 k個資源實例。 //系統(tǒng)可用資源 ? Available[i]=k表示系統(tǒng)中現(xiàn)有 Ri類資源 k個。如果計算出的資源分配是不安全的,系統(tǒng)將拒絕分配。 資源分配表 安全性檢查表 銀行家算法 (Cont.) Banker’s algorithm, . Dijkstra. 進程:事先申明所需資源最大量(并不分配) 系統(tǒng):對每個可滿足的資源申請命令進行安全性檢查。 ② 預分配 。不安全狀態(tài)一定導致死鎖? 利用銀行家算法避免死鎖 ? 當一個進程提出資源請求時 , 銀行家算法要做的工作其要點是: ① 判斷有無實施資源分配的可能 。 因為 , 此時也無法再找到一個安全序列 , 例如 , 把其余的 2臺分配給 P2, 這樣 , 在 P2完成后只能釋放出 4臺 , 既不能滿足 P1尚需 5臺的要求 , 也不能滿足 P3尚需 6臺的要求 , 致使它們都無法推進到完成 , 彼此都在等待對方釋放資源 , 即陷入僵局 , 結(jié)果導致死鎖 。設在 T0時刻,進程 P P2和 P3分別獲得 5臺、 2臺和 2臺,尚有 3臺空閑未分,如下表所示: 進 程 最 大 需 求 已 分 配 可 用 P1 P2 P3 10 4 9 5 2 2 3 由安全狀態(tài)向不安全狀態(tài)的轉(zhuǎn)換 如果不按照安全序列分配資源 , 則系統(tǒng)可能會由安全狀態(tài)進入不安全狀態(tài) 。 安全性檢查 死鎖避免 檢測 可滿足請求 分配 不分配 安全 不安全 定義:說系統(tǒng)處于安全狀態(tài) , 如果存在一個由系統(tǒng)中所有進程構(gòu)成的安全進程序列 p1,p2,…,pn;說一個進程序列 p1,p2,…,pn 是安全的 , 如果對于每一個進程pi(1≤i≤n), 它以后尚需要的資源數(shù)量不超過系統(tǒng)當前剩余資源數(shù)量與所有進程 pj(ji)當前占有資源數(shù)量之和 . 死鎖避免 ? 例:設系統(tǒng)中有三個進程 P P2和 P3,共有 12臺磁帶機。 若此次分配不會導致系統(tǒng)進入 不安全狀態(tài) , 則將資源分配給進程;否則 , 進程等待 。 ? 由于在避免死鎖的策略中 , 允許進程動態(tài)地申請資源 。 ? 預防死鎖的幾種策略 , 會嚴重地損害了系統(tǒng)性能 。 根據(jù)有序申請假設: F(rk1)F(rk2)…F(rkn)F(rk1) 矛盾。 F(printer)=3。 有序分配法 資源集: R={r1,r2,…,rn} 函數(shù): F: R?N 例如: R={scanner,tape,printer} F(scanner)=1。 有序分配法 ? 在這種方法中規(guī)定,系統(tǒng)將所有的資源按其類型進行線性排隊,并賦予不同的序號。 預先分配法 ? 進程:運行前申請所需全部資源; ? 系統(tǒng): – 能夠滿足,全部分配, – 否則,一個也不分配。 – 缺點:對進程的約束,違反約束仍可能死鎖。 ? 判斷下列資源分配圖所標示的狀態(tài)是否為死鎖 p1 p2 p3 ? 化簡下面的資源分配圖,并利用死鎖定理給出相應的結(jié)論 p2 p1 死鎖預防 ? 對進程有關(guān)資源的活動加限制,所有進程遵循這種限制,即可保證沒有死鎖發(fā)生。看資源分配圖能否化簡。 釋放:去掉分配邊。 圖示:進程: 資源: 申請邊:由進程到資源類; 分配邊:由資源實例到進程。 ? 死鎖恢復 ( deadlock recovery) – 這是與檢測死鎖相配套的一種措施,用于將進程從死鎖狀態(tài)下解脫出來,常用的實施方法是撤銷或掛起一些進程,以便收回一些資源,再將這些資源分配給已處于阻塞狀態(tài)的進程,使之轉(zhuǎn)為就緒狀態(tài)以繼續(xù)運行。 死鎖的處理 ? 死鎖檢測 ( deadlock detection) – 這種方法預先并不采取任何限制措施,也不檢查系統(tǒng)是否已經(jīng)進入不安全區(qū),此法允許系統(tǒng)在運行過程中發(fā)生死鎖。 死鎖的處理 ? 死鎖預防 ( deadlock prevention) 靜態(tài) – 通過設置某些限制條件,去破壞產(chǎn)生死鎖的 4個必要條件中的一個或幾個條件,來防止死鎖發(fā)生。 – 循環(huán)等待 ( circular wait) ? 又叫環(huán)路等待條件 ,存在一個循環(huán)等待鏈,其中,每一個進程分別等待它前一個進程所持有的資源,造成永遠等待。 – 不可剝奪 ( non preemption) ? 任一進程不能從另一進程那里搶奪資源,即已被占用的資源,只能由占用進程自己來釋放。 死鎖的條件 ? Coffman條件(必要條件) – 資源獨占 ( mutual exclusion) ? 又稱為互斥條件 ,一個資源在同一時刻只能分配給一個進程。 死鎖產(chǎn)生的原因 進程通訊引起死鎖 ? 在進程通訊時使用的信件可以看作是一種臨時性資源,如果對信件的發(fā)送和接收不加限制的話,則可能引起死鎖 ? 例 4:進程 p1等待進程 p3的信件 s3來到后再向進程 p2發(fā)送信件 s1; p2又要等待 p1信件來到后再向 p3發(fā)送信件 s2;而 p3也要等待 p2的信件 s2來到后才能發(fā)出信件 s3 死鎖定義 ? 一組進程中的每一個進程,均無限期地等待此組進程中某個其他進程占有的,因而永遠無法得到的資源,這種現(xiàn)象稱為 進程死鎖 。而 mn*k時,即資源數(shù)
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1