產生死鎖的原因主要是:
(1) 因爲系統資源不足。
(2) 進程運行推進的順序不合適。
(3) 資源分配不當等。
如果系統資源充足,進程的資源請求都能夠得到滿足,死鎖出現的可能性就很低,否則
就會因爭奪有限的資源而陷入死鎖。其次,進程運行推進順序與速度不同,也可能產生死鎖。
產生死鎖的四個必要條件:
(1) 互斥條件:一個資源每次只能被一個進程使用。
(2) 請求與保持條件:一個進程因請求資源而阻塞時,對已獲得的資源保持不放。
(3) 不剝奪條件:進程已獲得的資源,在末使用完之前,不能強行剝奪。
(4) 循環等待條件:若干進程之間形成一種頭尾相接的循環等待資源關係。
這四個條件是死鎖的必要條件,只要系統發生死鎖,這些條件必然成立,而只要上述條件之一不滿足就會產生死鎖
小河學習日記-產生死鎖的條件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Linux C/C++編程之(十七)進程間通信
我是管小亮
2020-07-08 10:47:44
win32程序運行原理
chijianxingfeng
2020-07-08 03:15:31
使用 supervisor 管理後臺進程
AI 开发者
2020-07-07 21:58:11
Linux C/C++編程之(十六)進程及進程控制
我是管小亮
2020-07-07 15:42:36
操作系統原理-進程和線程的區別
Storm-Shadow
2020-07-07 06:46:16
計算機操作系統基礎(八)---存儲管理之內存分配與回收
书旅LY
2020-07-06 22:38:16
計算機操作系統基礎(十二)---線程同步之自旋鎖
书旅LY
2020-07-06 22:38:16
計算機操作系統基礎(十一)---線程同步之互斥量
书旅LY
2020-07-06 22:38:16
計算機操作系統基礎(十)---存儲管理之虛擬內存
书旅LY
2020-07-06 22:38:15
計算機操作系統基礎(十三)---線程同步之讀寫鎖
书旅LY
2020-07-06 22:38:15
計算機操作系統基礎(九)---存儲管理之段頁式存儲管理
书旅LY
2020-07-06 22:38:15
Process 類的使用
行驶
2020-07-06 17:29:38
python 多進程+多線程,多進程+協程 代碼示例
rgc_520_zyl
2020-07-06 16:28:07