有關於死鎖的知識

2021-09-27 04:07:50 字數 962 閱讀 9828

(1) 打個比方,假設有 p1 和 p2 兩個程序,都需要 a 和 b 兩個資源,現在 p1 持有 a 等 待 b 資源,而 p2 持有 b 等待 a 資源,兩個都等待另乙個資源而不肯釋放資源,就 這樣無限等待中,這就形成死鎖,這也是死鎖的一種情況。給死鎖下個定義,如 果一組程序中每乙個程序都在等待僅由該組程序中的其他程序才能引發的事件, 那麼該組程序是死鎖的。

(2) 競爭不可搶占資源引起死鎖

(3) 也就是我們說的第一種情況,而這都在等待對方占有的不可搶占的資源。 

(1) 互斥條件: 其實就是程序對所分配到的資源進行排它性使用,是指在一段時間內 某個資源只能由乙個程序占用。如果此時還有其它程序請求資源,那麼其它執行緒 只能等待,直到占有資源的程序用完被釋放掉。

(2) 請求和保持條件: 指程序已經保持至少乙個資源,但又提出了新的資源請求,而 該資源已被其它程序占有,此時請求程序阻塞,但又對自己已獲得的其它資源保 持不放。

(3) 不剝奪條件: 指程序已獲得的資源,在未使用完之前,不能被剝奪,只能在使用 完時由自己釋放。

(4) 環路等待條件: 指在發生死鎖時候,一定存在乙個程序相當於資源的環形鏈,也 就是程序的集合像中的 p0 正在等待乙個 p1 占用的資 源;p1 正在等待 p2 占用的資源,……,pn 正在等待已被 p0 占用的資源 

(1)  檢測死鎖 

這種方法並不須事先採取任何限制性措施,也不必檢查系統是否已經進入不安 全區,此方法允許系統在執行過程中發生死鎖。但可通過系統所設定的檢測機構, 及時地檢測出死鎖的發生,並精確地確定與死鎖有關的程序和資源,然後採取適當 措施,從系統中將已發生的死鎖清除掉。 

(2) 解除死鎖。 

這是與檢測死鎖相配套的一種措施。當檢測到系統中已發生死鎖時,須將程序 從死鎖狀態中解脫出來。常用的實施方法是撤銷或掛起一些程序,以便**一些資源,再將這些資源分配給已處於阻塞狀態的程序,使之轉為就緒狀態,以繼續執行。 死鎖的檢測和解除措施,有可能使系統獲得較好的資源利用率和吞吐量,但在實現 上難度也最大。

關於死鎖的知識整理

死鎖的規範定義 如果乙個程序集合中的每個程序都在等待只能由該程序集合中的其他程序才能引發的事件,那麼,該程序集合就是死鎖的。死鎖舉例 資源死鎖 假如兩個程序都準備將掃瞄的檔案記錄到cd上,可用資源只有掃瞄器一台,cd燒錄機一台。a程序請求使用掃瞄器,並被授權使用,b程序首先請求使用cd燒錄機,也被授...

死鎖的有關問題

死鎖的定義 所謂死鎖是指各併發程序彼此互相等待對方所擁有的資源,且這些併發程序在得到對方的資源之前不會釋放自己所擁有的資源。從而造成大家都想得到資源而又都得不到資源,各併發程序不能繼續向前推進的狀態。死鎖的起因 死鎖的起因是併發程序的資源競爭。產生死鎖的根本原因在於系統提供的資源個數少於併發程序所要...

有關於BGP的小知識!

背景資訊 bgp協議本身不發現路由,因此需要將其他路由 如igp路由等 引入到bgp路由表中,從而將這些路由在as之內和as之間傳播。1 配置bgp引入路由bgp協議支援通過以下兩種方式引入路由 import方式 按協議型別,將rip路由 ospf路由 isis路由等協議的路由引入到bgp路由表中。...