天天看點

死鎖

程序管理–死鎖

含義:所謂死鎖,就是程序推進順序不當或者同類資源配置設定不當導緻無法繼續運作的現象。

考點:n個程序互斥并發執行,每個程序需要r個資源,計算可以避免死鎖現象的最少資源m

公式:m = n * (r - 1) + 1

舉例:若在系統中有6個互斥并發程序,每個程序需要2個資源,那麼使系統不發生死鎖的資源的最少數目為多少?

其中 n = 6;r = 2;

m = n * (r - 1) + 1 = 6 * (2 - 1) + 1 = 7

是以,需要最少的資源數數為7

真題:

系統中有R類資源m個,現有n個程序互斥使用,若每個程序對R資源的最大需求為w,那麼當m、n、w分别取下表中的值時,對于表中的①–⑥中情況,

1 可能會發生死鎖。若将這些情況得m分别加上 2 ,則系統不會發生死鎖

死鎖

1、A. ①②⑤ B. ③④⑤ C. ②④⑤ D. ②④⑥

2、A. 1、1和1 B. 1、1和2 C. 1、1和3 D. 1、2和1

參考答案:1、C 2、D

分析:

1、情況①不會發生死鎖:已知系統資源R的數目等于3,程序數等于2,每個程序對R資源的最大需求為2。若系統為2個程序各配置設定1個資源,系統可供配置設定的剩餘資源數等于1,則可以保證1個程序得到所需資源運作完畢。當該程序釋放資源後又能保證另一個程序運作完畢,故系統不會發生死鎖。情況②會發生死鎖:已知系統資源R的數目等于3,程序數等于3,每個程序對R資源的最大需求為2。若系統為3個程序各配置設定1個資源,系統可供配置設定的剩餘資源數等于0,則無法保證程序得到所需資源運作完畢,故系統會發生死鎖。情況③不會發生死鎖:已知系統資源R的數目等于5,程序數等于2,每個程序對R資源的最大需求為3。若系統為兩個程序各配置設定兩個資源,系統可供配置設定的剩餘資源數等于1,則可以保證1個程序得到所需資源運作完畢。當該程序釋放資源後又能保證另一個程序運作完畢,故系統不會發生死鎖。情況④會發生死鎖:已知系統資源R的數目等于5,程序數等于3,每個程序對R資源的最大需求為3。若系統為3個程序分别配置設定2、2和1個資源,系統可供配置設定的剩餘資源數等于0,則無法保證程序得到所需資源運作完畢,故系統會發生死鎖。情況⑤會發生死鎖:已知系統資源R的數目等于6,程序數等于3,每個程序對R資源的最大需求為3。若系統為3個程序各配置設定2個資源,系統可供配置設定的剩餘資源數等于0,則無法保證程序得到所需資源運作完畢,故系統會發生死鎖。情況⑥不會發生死鎖:已知系統資源R的數目等于6,程序數等于4,每個程序對R資源的最大需求為2。若系統為4個程序各配置設定1個資源,系統可供配置設定的剩餘資源數等于2,則可以保證2個程序得到所需資源運作完畢。當該程序釋放資源後又能保證剩餘2個程序運作完畢,故系統不會發生死鎖

2、情況②:若将m加1等于4時,系統為3個程序各配置設定1個資源,系統可供配置設定的剩餘資源數等于1,則可以保證1個程序得到所需資源運作完畢。當該程序釋放資源後又能保證另一個程序運作完畢,故系統不會發生死鎖。情況④:若将m加2等于7時,系統為3個程序各配置設定2個資源,系統可供配置設定的剩餘資源數等于1,則可以保證1個程序得到所需資源運作完畢。當該程序釋放資源後又能保證另兩個程序運作完畢,故系統不會發生死鎖。情況⑤:若将m加1等于7時,系統為3個程序各配置設定2個資源,系統可供配置設定的剩餘資源數等于1,則可以保證1個程序得到所需資源運作完畢。當該程序釋放資源後又能保證另兩個程序運作完畢,故系統不會發生死鎖。

繼續閱讀