學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>操作系統(tǒng)基礎(chǔ)知識(shí)>

操作系統(tǒng)死鎖的必要條件

時(shí)間: 佳洲1085 分享

  操作系統(tǒng)中死鎖產(chǎn)生是需要條件的,這幾個(gè)條件缺一不可,是必要條件。下面由學(xué)習(xí)啦小編為大家整理了操作系統(tǒng)的死鎖產(chǎn)生的必要條件相關(guān)知識(shí),希望對(duì)大家有幫助!

  一、操作系統(tǒng)死鎖產(chǎn)生的必要條件

  產(chǎn)生死鎖的四個(gè)必要條件

  -----互斥條件:一個(gè)資源每次只能被一個(gè)進(jìn)程(線程)使用。

  -----不可剝奪條件:一個(gè)進(jìn)程(線程)對(duì)已獲得的資源在未使用完畢之前,不能被其他進(jìn)程強(qiáng)行剝奪,而只能又該進(jìn)程自愿釋放。

  -----請(qǐng)求保持條件條件: 進(jìn)程(線程)每次申請(qǐng)它所需要的一部分資源,在申請(qǐng)新資源的同時(shí)繼續(xù)占用已分配的資源。

  -----循壞等待條件: 多個(gè)進(jìn)程(線程)之間形成一種頭尾相接的循環(huán)等待資源關(guān)系,即前一個(gè)進(jìn)程占有后一個(gè)進(jìn)程所請(qǐng)求的資源。

  注:這四個(gè)條件是死鎖的必要條件,只要系統(tǒng)發(fā)生死鎖,這些條件必然成立,而只要上述條件之 一不滿足,就不會(huì)發(fā)生死鎖。

  二、參考:解決死鎖的方法

  -----預(yù)防死鎖(破壞產(chǎn)生死鎖的條件)

  -----避免死鎖(銀行家算法)

  -----檢測(cè)死鎖(資源分配圖)

  -----解除死鎖

  注:第三條與第四條一般聯(lián)合使用

  預(yù)防死鎖的策略

  -----破壞互斥條件(SPOOLing)

  ----- 允許剝奪其他進(jìn)程的資源(破壞不可剝奪條件)

  -----一次性分配所有的資源(破壞請(qǐng)求與保持條件)

  -----有序分配資源(破壞請(qǐng)求與保持條件)

  檢測(cè)死鎖的策略

  資源分配圖

  解除死鎖的策略

  -----撤銷進(jìn)程

  -----撤消陷于死鎖的全部進(jìn)程

  -----逐個(gè)撤消陷于死鎖的進(jìn)程,直到死鎖不存在

  -----剝奪資源

  -----將陷于死鎖的進(jìn)程所占用的資源逐個(gè)強(qiáng)迫放棄,直至死鎖消失

  -----從另外一些進(jìn)程那里強(qiáng)行剝奪足夠數(shù)量的資源分配給死鎖進(jìn)程,以解除死鎖狀態(tài)

3626561