死鎖產生的原因

2021-08-28 18:53:16 字數 873 閱讀 8871

一、什麼是死鎖?

如果乙個程序集合裡面的每個程序都在等待這個集合中的其他乙個程序(包括自身)才能繼續往下執行,若無外力他們將無法推進,這種情況就是死鎖,處於死鎖狀態的程序稱為死鎖程序

二、死鎖產生的原因?

1.因競爭資源發生死鎖 現象:系統中供多個程序共享的資源的數目不足以滿足全部程序的需要時,就會引起對諸資源的競爭而發生死鎖現象

(1)可剝奪資源和不可剝奪資源:可剝奪資源是指某程序在獲得該類資源時,該資源同樣可以被其他程序或系統剝奪,不可剝奪資源是指當系統把該類資源分配給某個程序時,不能強制收回,只能在該程序使用完成後自動釋放

(2)競爭不可剝奪資源:系統中不可剝奪資源的數目不足以滿足諸程序執行的要求,則發生在執行程序中,不同的程序因爭奪這些資源陷入僵局。

(3)競爭臨時資源

2.程序推進順序不當發生死鎖

三. 產生死鎖的四個必要條件?

(1)互斥條件:程序對所分配到的資源不允許其他程序進行訪問,若其他程序訪問該資源,只能等待,直至占有該資源的程序使用完成後釋放該資源

(2)請求和保持條件:程序獲得一定的資源之後,又對其他資源發出請求,但是該資源可能被其他程序占有,此事請求阻塞,但又對自己獲得的資源保持不放

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

(4)環路等待條件:是指程序發生死鎖後,必然存在乙個程序–資源之間的環形鏈

四. 處理死鎖的基本方法

1.預防死鎖:通過設定一些限制條件,去破壞產生死鎖的必要條件

2.避免死鎖:在資源分配過程中,使用某種方法避免系統進入不安全的狀態,從而避免發生死鎖

3.檢測死鎖:允許死鎖的發生,但是通過系統的檢測之後,採取一些措施,將死鎖清除掉

4.解除死鎖:該方法與檢測死鎖配合使用

死鎖,產生原因,避免

什麼是死鎖 死鎖是指多個程序因競爭資源而造成的一種僵局 互相等待 若無外力作用,這些程序都將無法向前推進。例如,在某乙個計算機系統中只有一台印表機和一台輸入 裝置,程序p1正占用輸入裝置,同時又提出使用印表機的請求,但此時印表機正被程序p2 所占用,而p2在未釋放印表機之前,又提出請求使用正被p1占...

產生死鎖的原因

產生死鎖的原因主要是 1 因為系統資源不足。2 程序執行推進的順序不合適。3 資源分配不當等。如果系統資源充足,程序的資源請求都能夠得到滿足,死鎖出現的可能性就很低,否則 就會因爭奪有限的資源而陷入死鎖。其次,程序執行推進順序與速度不同,也可能產生死鎖。產生死鎖的四個必要條件 1 互斥條件 乙個資源...

死鎖及死鎖產生原因條件

作業系統中有若干程序併發執行,它們不斷申請 使用 釋放系統資源,雖然系統的進 程協調 通訊機構會對它們進行控制,但也可能出現若干程序都相互等待對方釋放資源才能 繼續執行,否則就阻塞的情況。此時,若不借助外界因素,誰也不能釋放資源,誰也不能解 除阻塞狀態。根據這樣的情況,作業系統中的死鎖被定義為系統中...