根據幾個例題學會解答資源死鎖取值問題


根據幾個例題學會解答資源死鎖取值問題

1、某系統中有11台打印機,N個進程共享打印機資源,每個進程要求3台打印機。當N的取值不超過(B)時,系統不會發生死鎖。

A. 4 B. 5 C. 6 D. 7

解答:考慮最壞情況,當每個進程都獲得了2台打印機時,這時只需再由有1台打印機就可以保證所有進程都能完成,不會發生死鎖,所以11 - 2N >= 1, 由此得知n <= 5

2、若系統中有5台繪圖儀,有多個進程需要使用兩台。規定每個進程一次僅允許申請一台,則最多允許(D)個進程參與競爭,而不會發生死鎖。

A. 5 B. 2 C. 3 D. 4

解答:在系統中有m個進程,都需要2個同類資源的情況下,假如此時每個進程都獲得了1個繪圖儀,那么當5 - m >= 1時, m <= 4,所以最多允許4個進程參與競爭,不會發生死鎖。

3、(2009年統考真題)某計算機系統中有8台打印機,有K個進程競爭使用,每個進程最多需要3台打印機,該系統可能會發生死鎖的K的最小值是(C)

A. 2 B. 3 C. 4 D. 5

解答:假設K = 3,3個進程共享8台打印機,每個進程最多可以請求3台打印機,若3個進程都分別得到2台打印機,系統還剩下2台打印機,接下去無論那個進程申請打印機,都可以得到滿足,3個進程都可以順利執行完畢,這種情況下不會產生死鎖。假設K = 4,4個進程共享8台打印機,都得不到滿足,使其互相等待,可能會發生死鎖。

4、(2014年統考真題)某系統有n台互斥使用的同類設備,3個並發進程分別需要3、4、5台設備,可確保系統不發生死鎖的設備數n最小為(B)

A. 9 B. 10 C. 11 D. 12

解答:這種題目只需要分配給每個進程的資源數比它所需要的資源數的最大值少一個即可觀察出結果。3個並發進程分別需要3、4、5台設備,設第一個進程分配2台,第二個進程分配3台,第三天進程分配4台,總共分配出去(3 - 1) + (4 - 1)+ (5 + 1) = 9台設備。這種情況下,3個進程均無法繼續執行下去,發生死鎖。當系統中再增加1台設備,也就是總共10台設備時,這最后1台設備分配給任意一個進程都可以順利執行完成,因此保證系統不發生死鎖的最小設備數為10.

總結:這種類型的題通常數字不大,可以憑經驗嘗試出答案,這樣會快一些,此處我們還可以根據對應的計算公式,便於大家加深理解。假設n為每個進程所需要的資源數,m為進程數,A為系統的資源數,則滿足(n - 1) * m >= A的最小整數m即為可能產生死鎖的最小進程數。該公式同樣可以用於求每個進程需要多少資源時可能會產生死鎖。

該公式可以這樣理解:當所有進程都差一個資源就可以執行,此時系統中所有資源都已經分配,因此死鎖。

A - (n - 1) * m >= 1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM