成语| 古诗大全| 教学资源| 作文| 扒知识| 扒知识繁体

當前位置:首页 > 趣味生活

死鎖化簡資源分配圖

Q1:資源分配圖的化簡判斷是否有死鎖發生

例如11個同類資源被5個進程共享,每個進程最多可以請求多3個資源才能保證系統不會發生死鎖。
因為如每個進程都已分配到2個資源,系統還剩下一個資源,就能保證某一個進程能分配到全部3個資源,並能執行到底,最終釋放這3個資源。
當m>n時,設一個進程最多可以請求多x個資源,故當
m > n * (x-1)
時,系統不會發生死鎖。
於是:
x – 1 < m / n
x < m / n +1、當 m 能被n除盡時,x = m / n
當 m 不能被n除盡時,x = trunc (m / n) +1、當m=n時,每個進程最多可以請求1個資源。
當m < n時,每個進程也最多可以請求1個資源。

Q2:簡化資源分配圖 判斷是否死鎖 大神求教 求分析

首先看P1,P1申請資源1,但資源1只有1個,且被P2占用,所以P1被阻塞,無法刪除P1的邊;

接著看P2,P2申請資源4,同理,資源4只有一個且被P3占用,所以P2的邊也不能刪除;

最後P3,P3申請資源3和2,資源3有2個,其中一個被P2占用,剩余一個空閒資源,可被P3申請,但資源2中,一個被P1占用,另一個被P3占用,無空閒資源,所以P3也被阻塞。無法刪除P3的邊。

三個結點經分析後都不能化簡為孤立結點,所以形成死鎖。

Q3:簡化資源分配圖,判斷是否死鎖?

首先看P1,P1申請資源1,但資源1只有1個,且被P2占用,所以P1被阻塞,無法刪除P1的邊;

接著看P2,P2申請資源4,同理,資源4只有一個且被P3占用,所以P2的邊也不能刪除;

最後P3,P3申請資源3和2,資源3有2個,其中一個被P2占用,剩余一個空閒資源,可被P3申請,但資源2中,一個被P1占用,另一個被P3占用,無空閒資源,所以P3也被阻塞。無法刪除P3的邊。

三個結點經分析後都不能化簡為孤立結點,所以形成死鎖。

死鎖是指兩個或兩個以上的進程在執行過程中,由於競爭資源或者由於彼此通信而造成的一種阻塞的現象,若無外力作用,它們都將無法推進下去。此時稱系統處於死鎖狀態或系統產生了死鎖,這些永遠在互相等待的進程稱為死鎖進程。

死鎖的規范定義:集合中的每一個進程都在等待只能由本集合中的其他進程才能引發的事件,那麼該組進程是死鎖的。

一種情形,此時執行程式中兩個或多個線程發生永久堵塞(等待),每個線程都在等待被其他線程占用並堵塞了的資源。例如,如果線程A鎖住了記錄1並等待記錄2,而線程B鎖住了記錄2並等待記錄1,這樣兩個線程就發生了死鎖現象。

在兩個或多個任務中,如果每個任務鎖定了其他任務試圖鎖定的資源,此時會造成這些任務永久阻塞,從而出現死鎖。例如:事務A獲取了行1的共享鎖。事務B獲取了行2的共享鎖。

Q4:資源分配圖法判斷下圖中是否存在死鎖。

不存在死鎖,進程P2始終能拿到1份r2,1份r1,然後歸還1份r1,進程P1同理。
我不知道r1和r2畫3個圈好2個圈是不是多份資源的意思,
而事實上,資源已經過於充足了,不可能死鎖。

猜你喜歡

更多