操作系統中的死鎖怎麼判斷?

**設n個進程,每個進程對R類資源最大需求量爲w,絕對不會發生死鎖的m的值的判斷是
M=n(w-1)+1,凡是題目中m<M的可能會發生死鎖,凡是m>=M絕對不會死鎖*

參考:

【網工09上半年8,9小題】設系統中有R類資源m個,現有n個進程互斥使用。若每個進程對R資源的最大需求爲w,那麼當m、n、w取下表的值時,對於下表中的a~e五種情況,(8)兩種情況可能會發生死鎖。對於這兩種情況,若將(9),則不會發生死鎖。

圖片描述

(8)A.a和b B.b和c C.c和d D.c和e

(9)A.n加1或w加1 B.m加1或w減1

C.m減1或w加1 D.m減1或w減1

【答案】D B

【解析】

(8)本題考查對操作系統死鎖方面基本知識掌握的程度。系統中同類資源分配不當會引起死鎖。一般情況下,若系統中有m個單位的存儲器資源,它被n個進程使用,當每個進程都要求w個單位的存儲器資源,當m<nw時,可能會引起死鎖。

試題(8)分析如下:

情況a: m=2, n=l, w=2,系統中有2個資源,1個進程使用,該進程最多要求2個資源,所以不會發生死鎖。

情況b: m=2, n=2, w=l,系統中有2個資源,2個進程使用,每個進程最多要求1個資源,所以不會發生死鎖。

情況c: m=2, n=2, w=2,系統中有2個資源,2個進程使用,每個進程最多要求2個資源,此時,採用的分配策略是輪流地爲每個進程分配,則第一輪系統先爲每個進程分配1個,此時,系統中已無可供分配的資源,使得各個進程都處於等待狀態導致系統發生死鎖,這時進程資源圖如下圖所示。
圖片描述
情況d: m=4, n=3, w=2,系統中有4個資源,3個進程使用,每個進程最多要求2個資源,此時,採用的分配策略是輪流地爲每個進程分配,則第一輪系統先爲每個進程分配1個資源,此時,系統中還剩1個資源,可以使其中的一個進程得到所需資源並運行完畢,所以不會發生死鎖。 .

情況e: m=4, n=3, w=3,系統中有4個資源,3個進程使用,每個進程最多要求3個資源,此時,採用的分配策略是輪流地爲每個進程分配,則第一輪系統先爲每個進程分配1個,第二輪系統先爲一個進程分配1個,此時,系統中已無可供分配的資源,使得各個進程都處於等待狀態導致系統發生死鎖,這時進程資源圖如下圖所示。
圖片描述

(9) 對於c和e兩種情況,若將m加1,則情況c: m=3,+ n=2, w=2,系統中有3個資源,2個進程使用,每個進程最多要求2個資源,系統先爲每個進程分配1個,此時,系統中還剩1個可供分配的資源,使得其中的一個進程能得到所需資源執行完,並釋放所有資源使另一個進程運行完畢;若將w減1,則情況c: m=2, n=2, w=l,系統中有2個資源,兩個進程各需一個,系統爲每個進程分配1個,此時,進程都能運行完,顯然不會發生死鎖。情況e分析同理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章