死鎖 死鎖的預防和避免

2021-09-26 09:17:02 字數 674 閱讀 6175

死鎖是指兩個或兩個以上的程序在執行過程中,由於競爭資源或者由於彼此通訊而造成的一種阻塞的現象,若無外力作用,它們都將無法推進下去。此時稱系統處於死鎖狀態或系統產生了死鎖,這些永遠在互相等待的程序稱為死鎖程序。

由死鎖的定義可知,死鎖主要是由於競爭資源引起的,那麼這裡的資源指的是哪些資源呢?

系統中的資源可以分為兩類:

產生死鎖中的競爭資源之一指的是競爭不可剝奪資源

(例如:系統中只有一台印表機,可供程序p1使用,假定p1已占用了印表機,若p2繼續要求印表機列印將阻塞)

產生死鎖中的競爭資源另外一種資源指的是競爭臨時資源

(臨時資源包括硬體中斷、訊號、訊息、緩衝區內的訊息等),通常訊息通訊順序進行不當,則會產生死鎖。

只要系統發生死鎖則以上四個條件至少有乙個成立。

死鎖避免的基本思想:

如果作業系統能保證所有程序在有限時間內得到需要的全部資源,則系統處於安全狀態否則系統是不安全的。

我們可以通過破壞死鎖產生的4個必要條件來預防死鎖,由於資源互斥是資源使用的固有特性是無法改變的。

死鎖 條件 預防 避免

條件 預防 死鎖的預防是保證系統不進入死鎖狀態的一種策略。它的基本思想是要求程序申請資源時遵循某種協議,從而打破產生死鎖的四個必要條件中的乙個或幾個,保證系統不會進入死鎖狀態。打破互斥條件。即允許程序同時訪問某些資源。但是,有的資源是不允許被同時訪問的,像印表機等等,這是由資源本身的屬性所決定的。所...

死鎖的產生和預防死鎖

1,死鎖的定義 死鎖是指多個進 程因競爭資源而造成的一種僵局 互相等待 若無外力作用,這些程序都將無法向前推進。2,死鎖產生的原因主要是 1 因為系統資源不足。2 程序執行推進的順序不合適。3 資源分配不當等。3,死鎖產生的必要條件 1 互斥條件 乙個資源每次只能被乙個程序使用。2 請求與保持條件 ...

死鎖 資源 檢測和恢復 避免 預防

資源 需要排他性使用的物件怕 隨著時間推移,必須獲得 使用以及釋放的任何東西 可搶占資源 可以從擁有的程序中搶占而不會產生任何 例如 儲存器 記憶體 死鎖與不可搶占資源有關,有關可搶占資源的潛在死鎖通常可通過在程序之間重新分配資源而化解。死鎖 如果一組程序中的每乙個程序都在等待僅由該組程序中的其它程...