国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 課堂 > DLL進程 > 正文

系統進程死鎖是什么原因如何讓進程不死鎖

2020-06-18 12:57:27
字體:
來源:轉載
供稿:網友
申請的資源被其他等待進程占有,那么該等待進程有可能永遠處于等待狀態而無法改變該狀態,這便是所謂的系統進程死鎖,下面為大家介紹幾種讓進程不死鎖的方法

如果我們的電腦有多個程序在同時進行,肯定會出現競爭得到一定數據資源的情況,而此時資源如果不夠用便會進入等待的狀態。果所申請的資源被其他等待進程占有,那么該等待進程有可能永遠處于等待狀態而無法改變該狀態,這便是所謂的系統進程死鎖。那么,有什么辦法能讓系統進程不死鎖嗎?

其實,想要系統不死鎖的根本辦法便是要將產生死鎖的4個必要條件消失,下面一起來分析下該如何破壞這些條件吧。

破壞互斥條件

破壞互斥條件即允許多個進程同時訪問資源。由于多數資源的必須互斥訪問這一固有特性不能改變,因此,死鎖的預防通過破壞這個必要條件實現在很多場合是行不通的。例如,打印機資源必須互斥使用,否則幾個進程同時使用,每個進程各打印一行,這種輸出信息的方式顯然是不能被用戶接受的。

破壞占有和等待條件

采用資源靜態分配法可破壞這一條件,該方法是指在進程運行前,一次性地_請分配它運行所需的全部資源。若系統有足夠的資源分配給某一進程,則一次性地將其所需資源分配給該進程,這樣,在進程運行期間便不會再提出任何資源請求,從而使等待條件不成立。如果分配時有一種資源要求不能滿足,則進程需要的其他資源也先不分配給進程,從而避免進程在等待期間占用任何資源,破壞了占用條件,從而避免死鎖的發生。

該方法控制簡單且容易實現,但由于進程運行期間對所需資源的全部占用,使得某些使用時間很短的資源被長時間占用,這樣會嚴重影響系統資源的充分利用,導致資源利用率降低,同吋也影響到未獲得全部資源的進程推遲運行。

破壞不剝奪條件

采用剝奪式控制方法可以破壞該條件,該方法是使一個已保持了某些資源的進程,由于新的資源要求目前得不到滿足,它必須先暫時釋放巳保持的所有資源(一種剝奪式),然后去等待,以后再一起向系統提出巾請,這樣也能防止死鎖。這種方法實現起來相對W難,為了保護進程自動放棄資源的現場以及后來的再次恢復,需要付出高昂的代價,并且這種方法只適用于處理機和存儲器資源,對其他資源,此法不宜使用。

破壞循環等待條件

采用資源順序分配法可破壞該條件。這種分配方法的基本思想是:把系統的全部資源分成多個層次,一個進程得到某一層的一個資源后,它只能再_請較高一層的資源;當一個進程要釋放某層的一個資源時,必須先釋放所占有的較高層的資源;當一個進程獲得了某一層的一個資源后,它想再申請該層中的另一個資源,就必須先釋放在該層中巳占有的資源。或者說,進程釋放資源的順序是按照中請資源的相反順序進行的。這樣可以預防循環等待現象的發生,因此不會發生死鎖。使用該方法要特別注意的問題是對資源所處層次的安排。在通常情況下,把各進程經常用到的、比較普遍的資源安排在較低的層次上,把重要且相對匱乏的資源安排在較高的層次上,以便實現對各資源的最大限度的利用。該方法相對于前面介紹的方法,在資源利用率和系統吞吐量上都有明顯的改善。但也存在一些缺陷。

(1)低層次的資源必須在進程請求分配髙層次的資源之前提前申請,這對于暫時不需使用的低層次資源來說,會因空閑等待而產生浪費。

(2)各類設備的資源層次一經設定,便不能經常隨意改動,這就限制了新類型設備的增加。

(3)各資源的層次是按照大多數進程使用資源的順序設置的。對于資源使用與此層次相閃配的進程,資源能得到有效的利用,否則,資源的浪費現象將仍然存在。

如果出現死鎖,進程便永遠不能完成,并且阻礙使用系統資源,阻止了其他作業開始執行。因此讓系統進程不再出現死鎖是那么的重要,需要引起我們的關注哦。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双牌县| 浮梁县| 万山特区| 永兴县| 多伦县| 金坛市| 宁安市| 交城县| 六枝特区| 牡丹江市| 余姚市| 赣州市| 大英县| 刚察县| 房产| 霍城县| 阳泉市| 天门市| 巫溪县| 上杭县| 勃利县| 沽源县| 彰化市| 连州市| 如皋市| 徐闻县| 新建县| 凌云县| 无为县| 山阳县| 台安县| 丹棱县| 长汀县| 铁岭市| 亳州市| 左权县| 仲巴县| 芦溪县| 遵义县| 荣成市| 和龙市|