我們在平時使用電腦的時候,經常會遇到死機的情況,這個時候電腦的運行就會停止,無法工作也無法娛樂,讓人非常頭疼。今天這篇文章就來介紹一下死機的一個原因,死鎖的内容。
死鎖的起因,通常是源于多個進程對資源的争奪,首先來介紹一下關于資源的内容吧。系統中有很多的資源,引起死鎖的資源主要是互斥訪問方法的不可被搶占的資源,如打印機、數據文件、信号量等。按消耗劃分成可重用性資源和消耗性資源,計算機中大多數是可搶占性資源。按占用可分為可搶占資源和不可搶占性資源,例如CPU和内存屬于可搶占式,打印機和磁帶機屬于不可搶占式。
多個進程争奪不可搶占資源和可消耗資源時,就會導緻死鎖的發生。通常系統中所擁有的不可搶占性資源不足以滿足多個進程運行的需要,使得進程在運行過程中會因争奪資源陷入僵局。當然,計算機的資源是永遠無法同時滿足所有任務的需求,所以才會有進程的推進順序,而推進順序的不當也會引起死鎖。就好像進程A占用了a資源,進程B占用了b資源,進程A就會和進程B互相争奪彼此所持有的資源,導緻雙方進入循環等待的處境。
死鎖的發生有四個必要條件,分别是互斥條件、請求和保持條件、不可搶占條件、循環等待條件。互斥條件就是對進程分配到的資源具有排它性,其他請求資源的進程隻能等待。請求和保持條件相類似,在保持至少一個資源的同時又請求了其他資源,由于其他資源被占有,進程阻塞,又不釋放自己已獲得的資源。不可搶占條件,進程已獲得資源在未釋放之前不可被搶占。循環等待條件,和上述A、B進程類似,進程A等待進程B占用的資源,進程B等待進程C占用的資源。
四所示非常影響正常的計算機使用的,目前處理死鎖的方法可歸結為四種。預防死鎖,通過設置某些限制條件,破壞産生死鎖的四個必要條件的一個或幾個。避免死鎖,是通過某種方法防止系統進入不安全狀态。檢測思索,這種方法無須事先采取任何限制性措施,通過檢測出死鎖的發生,再通過适當的措施将進程從死鎖中解脫出來。解除死鎖,當檢測到系統中發生死鎖時,常用的方法時撤銷一些進程,回收資源。
死鎖是死機很常見的一種原因,區别就是死機時系統已經徹底崩潰了,而死鎖隻是發生循環等待,無法正常執行而已。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!