Re: [理工] [OS] Dead Lock

看板Grad-ProbAsk作者 (幻夜)時間12年前 (2011/11/02 00:23), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《mickeyha (M*schief)》之銘言: : 洪逸 作業系統金寶典 : p.5-59 : 47.Consider a snapshit if the system as shown below. Upon the : next request, P1 makes a request for ( 0 4 2 0) and is granted : immediately. What is the minimum number of initial instances : (i.e. the total number of instances before any [rpcess enters the : system) for each resource type to make sure system still in a : safe after P1's request is granted? (答案請以(a b c d) 方式表示) : Allocation Max : A B C D A B C D : P0 0 0 1 2 0 1 1 2 : P1 1 0 0 0 1 7 5 0 : P2 1 3 5 4 2 4 5 6 : P3 0 4 3 2 0 7 5 2 : P4 0 0 1 4 0 6 5 6 ------------------ 2 7 10 12 <=原先的總Allocation : Ans: : Need : A B C D : P0 0 1 0 0 : P1 0 7 5 0 : P2 1 1 0 2 : P3 0 3 2 0 : P4 0 6 4 2 : 所以最少 = (3,12,12,12) (0 4 2 0)被granted 所以 原先Available >= (0 4 2 0) granted後 Need A B C D P0 0 1 0 0 P1 0 3 3 0 P2 1 1 0 2 P3 0 3 2 0 P4 0 6 4 2 而要讓整個process safe要找到一組不會造成deadlock的順序 先假設目前Available最小可為(0 0 0 0) 發現無法找出 safe sequence 只好讓P0先完成後釋放資源 (因為P0的B只差1) 所以目前 min Available至少要(0 1 0 0) P0釋放資源後=>Available變為(0 1 1 2) 仍無法找到safe sequence 只好再釋放P2 (因為P2的A只差1) 所以目前 min Available至少要(1 1 0 0) P2釋放資源後=>Available變為(2 3 5 2) 之後便可以找到safe sequence了 所以一開始的情況下 需要最少的resourse為 (2 7 10 12) + (0 4 2 0) + (1 1 0 0)=(3 12 12 12) 原先process 後來給P1 為了維持 擁有的資源 的資源 safe所加上去的資源 打的有點複雜 不過概念就是 先把P1已經granted的資源扣掉 然後從需求最少process的開始找safe sequence 假設剩下的Available為(0 0 0 0) 然後不夠的部分再一點一點加上去 加到發現某個地方不需要再加就可以有safe sequence 之後就把全部的資源free出來就是最開始所需的最少資源 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.6.23.64
文章代碼(AID): #1Ei1qAgB (Grad-ProbAsk)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1Ei1qAgB (Grad-ProbAsk)