日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

计算机操作系统——死锁的概念与处理

發布時間:2023/12/20 windows 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机操作系统——死锁的概念与处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

死鎖的條件?

死鎖的處理方式

1、死鎖預防

2、死鎖避免

3、死鎖檢測與恢復?

4、死鎖忽略


死鎖的條件?

死鎖的四個條件,缺一不可

  • 互斥條件:對必須互斥使用的資源的爭搶才會導致死鎖。
  • 不剝奪條件:進程所獲得的資源未使用完之前,不能被其他進程強行奪走,只能主動釋放。
  • 請求和保持條件:進程已經保持了至少一個資源,但又提出了新的資源請求,而該資源又被其他進程占有,此時請求進程被阻塞,但又對自己有的資源保持不放。就像很窄的橋,兩個人都要去對面,但誰又都無法讓出位置來。
  • 循環等待條件:存在一種進程資源的循環等待,鏈中的每一個進程已獲得的資源同時被下一個進程所請求。想象有一個閉環,閉環上每個人都需要下一個人手上的某個資源,那么所有人都沒辦法滿足。

下圖就像我們的一個死鎖

死鎖的處理方式

1、死鎖預防

  • 破壞互斥條件(創建一個隊列,所有的請求都會被快速響應,然后隊列逐漸將請求發送到處理器進行整理)
  • 破壞不剝奪條件(進程的某個資源得不到滿足時,就必須立刻釋放所持有的資源)
  • 破壞請求和保持條件(靜態分配,進程在運行前就一次性申請全部的資源,不滿足就不讓允許,就像過橋時保證橋上沒人才讓通行,否則禁止通行)
  • 破壞循環等待條件(資源編號,進程必須按照編號遞增的順序請求資源,這樣就不會出現持有大資源請求小資源的情況,也就不會有循環的等待)

2、死鎖避免

?銀行家算法:進程提出資源申請時,先判斷這次分配會不會導致系統進入不安全狀態,如果會則不答應請求,讓該進程阻塞。簡而言之,請求不能大于手中的資源。這種算法也叫銀行家算法。

3、死鎖檢測與恢復?

檢測方法通過死鎖檢測算法,下面以圖的方式說明?

?

能夠消除所有邊,就不會發生死鎖如下圖?

?

?不能消除所有邊就會發生死鎖。

*死鎖恢復:**資源剝奪將死鎖的進程掛起,釋放資源;撤銷進程,直接將部分或者全部死鎖進程撤銷;進程回退,讓進程回退的足以避免死鎖的地方。

4、死鎖忽略

顧名思義,忽略這個死鎖,死鎖概率本不高,就算出現了也只是局部的死鎖,直接不管反而能提高資源利用率與整體運行的速度,也有個好聽的名字叫鴕鳥算法,這樣性能會提升不少,大部分操作系統也采用死鎖忽略的策略。

總結

以上是生活随笔為你收集整理的计算机操作系统——死锁的概念与处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。