死锁的四个必要条件,及处理方法
生活随笔
收集整理的這篇文章主要介紹了
死锁的四个必要条件,及处理方法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
死鎖的四個(gè)必要條件
互斥條件(Mutual exclusion):資源不能被共享,只能由一個(gè)進(jìn)程使用。
請(qǐng)求與保持條件(Hold and wait):已經(jīng)得到資源的進(jìn)程可以再次申請(qǐng)新的資源。
非剝奪條件(No pre-emption):已經(jīng)分配的資源不能從相應(yīng)的進(jìn)程中被強(qiáng)制地剝奪。
循環(huán)等待條件(Circular wait):系統(tǒng)中若干進(jìn)程組成環(huán)路,該環(huán)路中每個(gè)進(jìn)程都在等待相鄰進(jìn)程正占用的資源。
處理死鎖的策略
1.忽略該問(wèn)題。例如鴕鳥(niǎo)算法,該算法可以應(yīng)用在極少發(fā)生死鎖的的情況下。為什么叫鴕鳥(niǎo)算法呢,因?yàn)閭髡f(shuō)中鴕鳥(niǎo)看到危險(xiǎn)就把頭埋在地底下,可能鴕鳥(niǎo)覺(jué)得看不到危險(xiǎn)也就沒(méi)危險(xiǎn)了吧。跟掩耳盜鈴有點(diǎn)像。
2.檢測(cè)死鎖并且恢復(fù)。
3.仔細(xì)地對(duì)資源進(jìn)行動(dòng)態(tài)分配,以避免死鎖。
4.通過(guò)破除死鎖四個(gè)必要條件之一,來(lái)防止死鎖產(chǎn)生。
互斥條件(Mutual exclusion):資源不能被共享,只能由一個(gè)進(jìn)程使用。
請(qǐng)求與保持條件(Hold and wait):已經(jīng)得到資源的進(jìn)程可以再次申請(qǐng)新的資源。
非剝奪條件(No pre-emption):已經(jīng)分配的資源不能從相應(yīng)的進(jìn)程中被強(qiáng)制地剝奪。
循環(huán)等待條件(Circular wait):系統(tǒng)中若干進(jìn)程組成環(huán)路,該環(huán)路中每個(gè)進(jìn)程都在等待相鄰進(jìn)程正占用的資源。
處理死鎖的策略
1.忽略該問(wèn)題。例如鴕鳥(niǎo)算法,該算法可以應(yīng)用在極少發(fā)生死鎖的的情況下。為什么叫鴕鳥(niǎo)算法呢,因?yàn)閭髡f(shuō)中鴕鳥(niǎo)看到危險(xiǎn)就把頭埋在地底下,可能鴕鳥(niǎo)覺(jué)得看不到危險(xiǎn)也就沒(méi)危險(xiǎn)了吧。跟掩耳盜鈴有點(diǎn)像。
2.檢測(cè)死鎖并且恢復(fù)。
3.仔細(xì)地對(duì)資源進(jìn)行動(dòng)態(tài)分配,以避免死鎖。
4.通過(guò)破除死鎖四個(gè)必要條件之一,來(lái)防止死鎖產(chǎn)生。
轉(zhuǎn)載于:https://www.cnblogs.com/rzqz/p/7466444.html
總結(jié)
以上是生活随笔為你收集整理的死锁的四个必要条件,及处理方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 阻塞IO
- 下一篇: HDU杭电2066 - 一个人的旅行(D