死鎖的概念
????死鎖的定義
在多道程序系統(tǒng)中,由于多個(gè)進(jìn)程的并發(fā)執(zhí)行,改善了系統(tǒng)資源的利用率并提高了系統(tǒng)的處理能力。然而多個(gè)進(jìn)程的并發(fā)執(zhí)行也帶來(lái)了新的問(wèn)題一一死鎖。所謂死鎖是指多個(gè)進(jìn)程因競(jìng)爭(zhēng)資源而造成的一種僵局 (互相等待)奸例,若無(wú)外力作用,這些進(jìn)程都將無(wú)法向前推進(jìn)。
下面我們通過(guò)一些實(shí)例來(lái)說(shuō)明死鎖現(xiàn)象:
先看生活中的一個(gè)實(shí)例查吊,在一條河上有一座橋谐区,橋面很窄,只能容納一輛汽車通行逻卖。如果有兩輛汽車分別從橋的左右兩端駛上該橋宋列,則會(huì)出現(xiàn)下述的沖突情況:此時(shí),左邊的汽車占有了橋面左邊的一段评也,要想過(guò)橋還需等待右邊的汽車讓出橋面右邊的一段炼杖;右邊的汽車占有了橋面右邊的一段 ,要想過(guò)橋還需等待左邊的汽車讓出橋面左邊的一段盗迟。此時(shí)坤邪,若左右兩邊的汽車都只能向前行駛,則兩輛汽車都無(wú)法過(guò)橋罚缕。
在計(jì)算機(jī)系統(tǒng)中也存在類似的情況艇纺。例如,某計(jì)算機(jī)系統(tǒng)中只有一臺(tái)打印機(jī)和一臺(tái)輸入設(shè)備邮弹,進(jìn)程 P1正占用輸入設(shè)備黔衡,同時(shí)又提出使用打印機(jī)的請(qǐng)求,但此時(shí)打印機(jī)正被進(jìn)程 P2 所占用肠鲫,而P2未釋放打印機(jī)之前 员帮,又提出請(qǐng)求使用正被 P1占用著的輸入設(shè)備 或粮。這樣兩個(gè)進(jìn)程相互無(wú)休止地等待下去导饲,均無(wú)法繼續(xù)執(zhí)行,此時(shí)兩個(gè)進(jìn)程陷入死鎖狀態(tài)氯材。
????死鎖產(chǎn)生的原因
(1)系統(tǒng)資源的競(jìng)爭(zhēng)
通常系統(tǒng)中擁有的不可剝奪資源渣锦,其數(shù)量不足以滿足多個(gè)進(jìn)程運(yùn)行的需要,使得進(jìn)程在運(yùn)行過(guò)程中氢哮,會(huì)因爭(zhēng)奪資源而陷入僵局袋毙,如磁帶機(jī)、打印機(jī)等冗尤。只有對(duì)不可剝奪資源的競(jìng)爭(zhēng)才可能產(chǎn)生死鎖听盖,對(duì)可剝奪資源的競(jìng)爭(zhēng)是不會(huì)引起死鎖的。
(2)進(jìn)程推進(jìn)順序非法
進(jìn)程在運(yùn)行過(guò)程中裂七,請(qǐng)求和釋放資源的順序不當(dāng)皆看,也同樣會(huì)導(dǎo)致死鎖。 例如背零,并發(fā)進(jìn)程 P1 腰吟、P2 分別保持了資源 R1, R2徙瓶,而進(jìn)程 P1申請(qǐng)資源R2毛雇,進(jìn)程 P2 申請(qǐng)資源 R1時(shí)嫉称,兩者都會(huì)因?yàn)樗栀Y源被占用而阻塞。
信號(hào)量使用不當(dāng)也會(huì)造成死鎖灵疮。進(jìn)程間彼此相互等持對(duì)方發(fā)來(lái)的消息织阅,結(jié)果也會(huì)使得這些進(jìn)程無(wú)法繼續(xù)向前進(jìn)。例如震捣,進(jìn)程 A 等待進(jìn)程 B發(fā)的消息蒲稳,進(jìn)程B又在等待進(jìn)程 A 發(fā)的消息, 可以看出進(jìn)程 A 和B 不是因?yàn)楦?jìng)爭(zhēng)同一資源伍派,而是在等待對(duì)方的資源導(dǎo)致死鎖江耀。
(3)死鎖產(chǎn)生的必要條件
產(chǎn)生死鎖必須同時(shí)滿足以下四個(gè)條件,只要其中任一條件不成立诉植,死鎖就不會(huì)發(fā)生祥国。?
互斥條件:進(jìn)程要求對(duì)所分配的資源 (如打印機(jī)) 進(jìn)行排他性控制,即在一段時(shí)間內(nèi)某資源僅為一個(gè)進(jìn)程所占有晾腔。此時(shí)若有其他進(jìn)程請(qǐng)求該資源舌稀,則請(qǐng)求進(jìn)程只能等待。?
不剝奪條件:進(jìn)程所獲得的資源在未使用完畢之前灼擂,不能被其他進(jìn)程強(qiáng)行奪走壁查,即只能由獲得該資源的進(jìn)程自己來(lái)釋放 (只能是主動(dòng)釋放)。?
請(qǐng)求和保持條件:進(jìn)程已經(jīng)保持了至少一個(gè)資源剔应,但又提出了新的資源請(qǐng)求睡腿,而該資源己被其他進(jìn)程占有,此時(shí)請(qǐng)求進(jìn)程被阻塞峻贮,但對(duì)自己己獲得的資源保持不放席怪。
循環(huán)等待條件:存在一種進(jìn)程資源的循環(huán)等待鏈,鏈中每一個(gè)進(jìn)程己獲得的資源同時(shí)被鏈中下一個(gè)進(jìn)程所請(qǐng)求纤控。即存在一個(gè)處于等待狀態(tài)的進(jìn)程集合{P1挂捻,P2,...船万,Pn } 刻撒,其中 Pi 等待的資源被 P(i + 1)占有 (i=0,1,... 耿导,n - 1),? Pn 等待的資源被 P0占有声怔,如圖所示。
直觀上看 碎节,循環(huán)等待條件似乎和死鎖的定義一樣捧搞,其實(shí)不然。按死鎖定義構(gòu)成等待環(huán)所要求的條件更嚴(yán),它要求 Pi等待的資源必須由P(i + 1)來(lái)滿足胎撇,而循環(huán)等待條件則無(wú)此限制介粘。例如,系統(tǒng)中有兩臺(tái)輸出設(shè)備 晚树,P0占有一臺(tái)姻采,PK 占有另一臺(tái),且 K 不屬于集合{0爵憎,1慨亲,...,n}宝鼓。Pn 等待一臺(tái)輸出設(shè)備刑棵,它可以從 P0獲得,也可能從 PK 獲得愚铡。因此蛉签,雖然 Pn、P0和其他一些進(jìn)程形成了循環(huán)等待圈沥寥,但PK 不在圈內(nèi)碍舍,若PK 釋放了輸出設(shè)備 ,則可打破循環(huán)等待邑雅,如圖所示片橡。因此循環(huán)等待只是死鎖的必要條件。
資源分配圖含圈而系統(tǒng)又不一定有死鎖的原因是同類資源數(shù)大于1淮野。但若系統(tǒng)中每類資源都只有一個(gè)資源捧书,則資源分配圖含圈就變成了系統(tǒng)出現(xiàn)死鎖的充分必要條件。
要注意區(qū)分不可剝奪條件與請(qǐng)求和保持條件录煤,用一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明:如果你手上拿著一個(gè)蘋(píng)果 (即使你不打算吃)鳄厌,別人不能把你手上的蘋(píng)果拿走,那就是不可剝奪條件妈踊;如果你左手拿著一個(gè)蘋(píng)果 ,允許你右手再去拿一個(gè)蘋(píng)果 泪漂,那就是請(qǐng)求和保持條件廊营。
死鎖的處理策略?
為使系統(tǒng)不發(fā)生死鎖,必須設(shè)法破壞產(chǎn)生死鎖的四個(gè)必要條件之一? 萝勤,或者允許死鎖產(chǎn)生露筒,但當(dāng)死鎖發(fā)生時(shí)能檢測(cè)出死鎖,并有能力實(shí)現(xiàn)恢復(fù)敌卓。
????預(yù)防死鎖
設(shè)置某些限制條件慎式,破壞產(chǎn)生死鎖的四個(gè)必要條件中的一個(gè)或幾個(gè),以防止發(fā)生死鎖。
????避免死鎖
在資源的動(dòng)態(tài)分配過(guò)程中瘪吏,用某種方法防止系統(tǒng)進(jìn)入不安全狀態(tài)癣防,從而避免死鎖。
????死鎖的檢測(cè)及解除
無(wú)需采取任何限制性措施 掌眠,允許進(jìn)程在運(yùn)行過(guò)程中發(fā)生死鎖蕾盯。通過(guò)系統(tǒng)的檢測(cè)機(jī)構(gòu)及時(shí)地檢測(cè)出死鎖的發(fā)生,然后采取某種措施解除死鎖蓝丙。
預(yù)防死鎖和避免死鎖都屬于事先預(yù)防策略级遭,但預(yù)防死鎖的限制條件比較嚴(yán)格,實(shí)現(xiàn)起來(lái)較為簡(jiǎn)單渺尘,但往往導(dǎo)致系統(tǒng)的效率低挫鸽,資源利用率低;避免死鎖的限制條件相對(duì)寬松鸥跟,資源分配后需要通過(guò)算法來(lái)判斷是否進(jìn)入不安全狀態(tài)掠兄,實(shí)現(xiàn)起來(lái)較為復(fù)雜。
死鎖的幾種處理策略的比較見(jiàn)下表
死鎖預(yù)防?
防止死鎖的發(fā)生只需破壞死鎖產(chǎn)生的四個(gè)必要條件之一即可锌雀。?
????破壞互斥條件
如果允許系統(tǒng)資源都能共享使用蚂夕,則系統(tǒng)不會(huì)進(jìn)入死鎖狀態(tài)。但有些資源根本不能同時(shí)訪問(wèn)腋逆,如打印機(jī)等臨界資源只能互斥使用婿牍。所以,破壞互斥條件而預(yù)防死鎖的方法不太可行惩歉,而且在有的場(chǎng)合應(yīng)該保護(hù)這種互斥性等脂。
????破壞不剝奪條件??
當(dāng)一個(gè)己保持了某些不可剝奪資源的進(jìn)程,請(qǐng)求新的資源而得不到滿足時(shí)? 撑蚌,它必須釋放己經(jīng)保持的所有資源上遥,待以后需要時(shí)再重新申請(qǐng)。這意味著争涌,一個(gè)進(jìn)程已占有的資源會(huì)被暫時(shí)釋放粉楚,或者說(shuō)是被剝奪了,從而破壞了不可剝奪條件 亮垫。
該策略實(shí)現(xiàn)起來(lái)比較復(fù)雜模软,釋放已獲得的資源可能造成前一階段工作的失效,反復(fù)地申請(qǐng)和釋放資源會(huì)增加系統(tǒng)開(kāi)銷饮潦,降低系統(tǒng)吞吐量燃异。這種方法常用于狀態(tài)易于保存和恢復(fù)的資源,如CPU的寄存器及內(nèi)存資源继蜡,一般不能用于打印機(jī)之類的資源回俐。
????破壞請(qǐng)求和保持條件
采用預(yù)先靜態(tài)分配方法逛腿,即進(jìn)程在運(yùn)行前一次申請(qǐng)完它所需要的全部資源,在它的資源未滿足前仅颇,不把它投入運(yùn)行单默。一旦投入運(yùn)行后,這些資源就一直歸它所有灵莲,也不再提出其他資源請(qǐng)求雕凹,這樣就可以保證系統(tǒng)不會(huì)發(fā)生死鎖。
這種方式實(shí)現(xiàn)簡(jiǎn)單 政冻,但缺點(diǎn)也顯而易見(jiàn)枚抵,系統(tǒng)資源被嚴(yán)重浪費(fèi) ,其中有些資源可能僅在運(yùn)行初期或運(yùn)行快結(jié)束時(shí)才使用明场,甚至根本不使用汽摹。而且還會(huì)導(dǎo)致 “饑餓” 現(xiàn)象,當(dāng)由于個(gè)別資源長(zhǎng)期被其他進(jìn)程占用時(shí)苦锨,將致使等待該資源的進(jìn)程遲遲不能開(kāi)始運(yùn)行逼泣。
????破壞循環(huán)等待條件
為了破壞循環(huán)等待條件舟舒,可采用順序資源分配法 拉庶。首先給系統(tǒng)中的資源編號(hào)秃励,規(guī)定每個(gè)進(jìn)程氏仗, 必須按編號(hào)遞增的順序請(qǐng)求資源,同類資源一次申請(qǐng)完夺鲜。也就是說(shuō)皆尔,只要進(jìn)程提出申請(qǐng)分配資源Ri,則該進(jìn)程在以后的資源申請(qǐng)中币励,只能申請(qǐng)編號(hào)大于 Ri 的資源慷蠕。
這種方法存在的問(wèn)題是,編號(hào)必須相對(duì)穩(wěn)定食呻,這就限制了新類型設(shè)備的增加:盡管在為資源編號(hào)時(shí)己考慮到大多數(shù)作業(yè)實(shí)際使用這些資源的順序流炕,但也經(jīng)常會(huì)發(fā)生作業(yè)使用資源的順序與系統(tǒng)規(guī)定順序不同的情況,造成資源的浪費(fèi)搁进;此外浪感,這種按規(guī)定次序申請(qǐng)資源的方法,也必然會(huì)給用戶的編程帶來(lái)麻煩饼问。
死鎖避免
避免死鎖同樣是屬于事先預(yù)防的策略,但并不是事先采取某種限制措施破壞死鎖的必要條件揭斧,而是在資源動(dòng)態(tài)分配過(guò)程中莱革,防止系統(tǒng)進(jìn)入不安全狀態(tài) 峻堰,以避免發(fā)生死鎖。這種方法所施加的限制條件較弱盅视,可以獲得較好的系統(tǒng)性能捐名。
????系統(tǒng)安全狀態(tài)
避免死鎖的方法中,允許進(jìn)程動(dòng)態(tài)地申請(qǐng)資源闹击,但系統(tǒng)在進(jìn)行資源分配之前镶蹋,應(yīng)先計(jì)算此次資源分配的安全性。若此次分配不會(huì)導(dǎo)致系統(tǒng)進(jìn)入不安全狀態(tài) 赏半,則將資源分配給進(jìn)程贺归;否則, 讓進(jìn)程等待断箫。
所謂安全狀態(tài) 拂酣,是指系統(tǒng)能按某種進(jìn)程推進(jìn)順序 (Pl, P2,...仲义,Pn)婶熬,為每個(gè)進(jìn)程Pi 分配其所需資源,直至滿足每個(gè)進(jìn)程對(duì)資源的最大需求埃撵,使每個(gè)進(jìn)程都可順序地完成赵颅。此時(shí)稱 P1, P2,? ···,Pn? 為安全序列。如果系統(tǒng)無(wú)法找到一個(gè)安全序列暂刘,則稱系統(tǒng)處于不安全狀態(tài)饺谬。 假設(shè)系統(tǒng)中有三個(gè)進(jìn)程 P1 、P2 和P3鸳惯,共有 12 臺(tái)磁帶機(jī)商蕴。進(jìn)程P1 總共需要 10 臺(tái)磁帶機(jī),P2 和 P3 分 別需要 4 臺(tái)和 9 臺(tái)芝发。假設(shè)在T0 時(shí)刻绪商,進(jìn)程 P1、P2 和 P3 己分別獲得 5 臺(tái)辅鲸、2 臺(tái)和 2 臺(tái)格郁,尚有 3 臺(tái)未分配,見(jiàn)下表:
則在 T0時(shí)刻是安全的独悴,因?yàn)榇嬖谝粋€(gè)安全序列P2例书、P1、P3刻炒,即只要系統(tǒng)按此進(jìn)程序列分配資源决采,則每個(gè)進(jìn)程都能順利完成。若在T0時(shí)刻后坟奥,系統(tǒng)分配1臺(tái)磁帶機(jī)給P3树瞭,則此時(shí)系統(tǒng)便進(jìn)入不安全狀態(tài)拇厢,因?yàn)榇藭r(shí)己無(wú)法再找到一個(gè)安全序列。
并非所有的不安全狀態(tài)都是死鎖狀態(tài)晒喷,但當(dāng)系統(tǒng)進(jìn)入不安全狀態(tài)后孝偎,便可能進(jìn)入死鎖狀態(tài); 反之凉敲,只要系統(tǒng)處于安全狀態(tài)衣盾,系統(tǒng)便可以避免進(jìn)入死鎖狀態(tài)。
????銀行家算法
銀行家算法是最著名的死鎖避免算法爷抓。它提出的思想是:把操作系統(tǒng)看做是銀行家势决,操作系統(tǒng)管理的資源相當(dāng)于銀行家管理的資金,進(jìn)程向操作系統(tǒng)請(qǐng)求分配資源相當(dāng)于用戶向銀行家貸款废赞。操作系統(tǒng)按照銀行家制定的規(guī)則為進(jìn)程分配資源 徽龟,當(dāng)進(jìn)程首次申請(qǐng)資游時(shí),要測(cè)試該進(jìn)程對(duì)資源的最大需求量唉地,如果系統(tǒng)現(xiàn)存的資源可以滿足它的最大需求量則按當(dāng)前的申請(qǐng)量分配資源 据悔,否則就推遲分配。當(dāng)進(jìn)程在執(zhí)行中繼續(xù)申請(qǐng)資源時(shí)耘沼,先測(cè)試該進(jìn)程己占用的資源數(shù)與本次申請(qǐng)的資源數(shù)之和是否超過(guò)了該進(jìn)程對(duì)資源的最大需求量极颓。若超過(guò)則拒絕分配資源,若沒(méi)有超過(guò)則再測(cè)試系統(tǒng)現(xiàn)存的資源能否滿足該進(jìn)程尚需的最大資源量群嗤,若能滿足則按當(dāng)前的申請(qǐng)量分配資源菠隆,否則也要推遲分配。
死鎖檢測(cè)和解除
前面介紹的死鎖預(yù)防和避免算法狂秘,都是在為進(jìn)程分配資源時(shí)施加限制條件或進(jìn)行檢測(cè) 骇径,若系統(tǒng)為進(jìn)程分配資源時(shí)不采取任何措施,則應(yīng)該提供死鎖檢測(cè)和解除的手段者春。
????資源分配圖
系統(tǒng)死鎖,可利用資源分配圖來(lái)描述钱烟。如圖所示,用圓圈代表一個(gè)進(jìn)程读第,用框代表一類資源。由于一種類型的資源可能有多個(gè)拥刻,用框中的一個(gè)點(diǎn)代表一類資源中的一個(gè)資源。從進(jìn)程到資源的有向邊叫請(qǐng)求邊般哼,表示該進(jìn)程申請(qǐng)一個(gè)單位的該類資源尘吗;從資源到進(jìn)程的邊叫分配邊 逝她,表示該類資源已經(jīng)有一個(gè)資源被分配給了該進(jìn)程浇坐。
在上圖所示的資源分配圖中黔宛,進(jìn)程 P1 已經(jīng)分得了兩個(gè)R1資源,并又請(qǐng)求一個(gè)R2資源觉渴;進(jìn)程 P2 分得了一個(gè) R1 和 一個(gè) R2 資源徽惋,并又請(qǐng)求一個(gè) R1資源。
????死鎖定理
可以通過(guò)將資源分配圖簡(jiǎn)化的方法來(lái)檢測(cè)系統(tǒng)狀態(tài) S 是否為死鎖狀態(tài)踢京。簡(jiǎn)化方法如下:
1) 在資源分配圖中宦棺,找出既不阻塞又不是孤點(diǎn)的進(jìn)程Pi( 即找出一條有向邊與它相連代咸,且該有向邊對(duì)應(yīng)資源的申請(qǐng)數(shù)量小于等于系統(tǒng)中己有空閑資源數(shù)量,如上圖中逻杖,R1沒(méi)有空閑資源思瘟,R2有一個(gè)空閑資源潮太。若所有的連接該進(jìn)程的邊均滿足上述條件,則這個(gè)進(jìn)程能繼續(xù)運(yùn)行直至完成更鲁,然后釋放它所占有的所有資源)奇钞。消去它所有的請(qǐng)求邊和分配邊景埃,使之成為孤立的結(jié)點(diǎn)顶别。 在圖(a)中驯绎,P1是滿足這一條件的進(jìn)程結(jié)點(diǎn)谋旦,將P1的所有邊消去,便得到圖(b)所示的情況拴孤。
在這里要注意一個(gè)問(wèn)題演熟,判斷某種資源是否有空間司顿,應(yīng)該用它的資源數(shù)量減去它在資源分配圖中的出度免猾,如上圖中,R1資源數(shù)有 3获三,而出度也是 3锨苏。 所以 R1沒(méi)有空閑資源伞租,R2的資源數(shù)是 2,出度是1裸弦,所以R2有1個(gè)空閑資源作喘。
2) 進(jìn)程 Pi 所釋放的資源泞坦,可以喚醒某些因等待這些資源而阻塞的進(jìn)程,原來(lái)的阻塞進(jìn)程可能變?yōu)榉亲枞M(jìn)程赃梧。在上圖中,進(jìn)程P2 就滿足這樣的條件物咳。根據(jù) 1)中的方法進(jìn)行一系列簡(jiǎn)化后所森,若能消去圖中所有的邊夯接,則稱該圖是可完全簡(jiǎn)化的盔几,如圖(c)所示掩幢。
S為死鎖的條件是當(dāng)且僅當(dāng)S狀態(tài)的資源分配圖是不可完全簡(jiǎn)化的际邻,該條件為死鎖定理。
????死鎖解除
一旦檢測(cè)出死鎖缨恒,就應(yīng)立即采取相應(yīng)的措施骗露,以解除死鎖血巍。死鎖解除的主要方法有:
1)資源剝奪法。掛起某些死鎖進(jìn)程柿隙,并搶占它的資源禀崖,將這些資源分配給其他的死鎖進(jìn)程掀序。但應(yīng)防止被掛起的進(jìn)程長(zhǎng)時(shí)間得不到資源,而處于資源匱乏的狀態(tài)财饥。
2)撤銷進(jìn)程法折晦。強(qiáng)制撤銷部分、甚至全部死鎖進(jìn)程并剝奪這些進(jìn)程的資源谦炒。撤銷的原則可以按進(jìn)程優(yōu)先級(jí)和撤銷進(jìn)程代價(jià)的高低進(jìn)行宁改。
3) 進(jìn)程回退法还蹲。讓一 (或多)個(gè)進(jìn)程回退到足以回避死鎖的地步耙考,進(jìn)程回退時(shí)自愿釋放資源而不是被剝奪倦始。要求系統(tǒng)保持進(jìn)程的歷史信息,設(shè)置還原點(diǎn)诵次。
本節(jié)小結(jié)
????為什么會(huì)產(chǎn)生死鎖藻懒?產(chǎn)生死鎖有什么條件视译?
由于系統(tǒng)中存在一些不可剝奪資源酷含,而當(dāng)兩個(gè)或兩個(gè)以上的進(jìn)程占有自身資源,并請(qǐng)求對(duì)方資源時(shí)限番,會(huì)導(dǎo)致每個(gè)進(jìn)程都無(wú)法向前推進(jìn)弥虐,這就是死鎖。死鎖產(chǎn)生的必要條件有四個(gè)珠插,分別是互斥條件颖对、不剝奪條件 缤底、請(qǐng)求并保持條件和循環(huán)等待條件个唧。
互斥條件是指進(jìn)程要求分配的資源是排他性的,即最多只能同時(shí)給一個(gè)進(jìn)程使用膘流。 不剝奪條件是指進(jìn)程在使用資源完畢之前 鲁沥,資源不能被強(qiáng)制奪走画恰。 請(qǐng)求并保持條件是指進(jìn)程占有自身本來(lái)?yè)碛械馁Y源并要求其他資源允扇。 循環(huán)等待條件是指存在一種進(jìn)程資源的循環(huán)等待鏈 则奥。
????有什么辦法可以解決死鎖問(wèn)題读处??
死鎖的處理策略可以分為預(yù)防死鎖、避免死鎖和死鎖的檢測(cè)及解除井辜。
死鎖的預(yù)防是通過(guò)設(shè)立一些限制條件粥脚,破壞死鎖的一些必要條件包个,讓死鎖無(wú)法發(fā)生。 死鎖的避免是在動(dòng)態(tài)分配資源的過(guò)程中纤怒,用一些算法防止系統(tǒng)進(jìn)入不安全狀態(tài) 破托,從而避免死鎖土砂。
死鎖的檢測(cè)和解除是在死鎖產(chǎn)生前不采取任何措施萝映,只檢測(cè)當(dāng)前系統(tǒng)有沒(méi)有發(fā)生死鎖。若有蚌卤, 則采取一些措施解除死鎖逊彭。
本節(jié)的知識(shí)架構(gòu)圖如下: