1.死鎖的概念
死鎖指的是兩個或多個程序無期限地等待永遠不會發生的條件的一種系統狀態(結果:每個程序都永遠阻塞)
2.死鎖產生的原因及必要條件:
死鎖的起因:
系統資源有限;
併發程序的推進順序不當;
必要條件:
互斥條件:程序互斥使用資源,資源具有獨占性
不剝奪條件:程序在訪問完資源前不能被其他程序強行剝奪;
部分分配條件:程序邊執行邊申請資源,臨時需要臨時分配(區別於全部分配);
環路條件:多個程序構成環路,環路中每個程序占用的資源被前一程序申請,而且自己所申請的資源又被環中後一程序占用著
3.死鎖的四個解決策略:
預防死鎖:(破壞死鎖四個必要條件中的乙個或多個)
避免死鎖:不事先採取限制去破壞產生死鎖條件,而是在資源分配過程中,用某種方法去評估。
(銀行家演算法)
檢測和恢復死鎖:允許死鎖發生,但可以通過檢測機制即使檢測出死鎖狀態,並精確確定與死鎖有關的程序資源,然後採取適當措施,將系統中已發生的死鎖清除,將程序從死鎖狀態中解脫出來。
作業系統死鎖
作業系統死鎖,在作業系統課程當中屬於比較關注的乙個知識點,在這裡做個簡單的梳理。死鎖的四個必要條件 作業系統中有若干程序併發執行,它們不斷申請 使用 釋放系統資源,雖然系統的進 程協調 通訊機構會對它們進行控制,但也可能出現若干程序都相互等待對方釋放資源才能 繼續執行,否則就阻塞的情況。此時,若不借...
作業系統 死鎖
多執行緒以及多程序改善了系統資源的利用率並提高了系統 的處理能力。然而,併發執行也帶來了新的問題 死鎖。死鎖是指多個程序在執行過程中因爭奪資源而造成的一種僵局,當前程序處於這種狀態時,若無外力作用,它們都將無法再向前推進。關於死鎖的一些結論 競爭資源 當系統中供多個程序共享的資源如印表機 公用佇列等...
作業系統 死鎖
把需要排他性使用的物件稱為資源。資源可以是硬體也可以是軟體,比如印表機或者資料庫中的乙個加鎖記錄。資源可以分為兩類 可搶占資源和不可搶占資源。搶占這個詞,在程序和執行緒排程時就提到了這個概念,那時是程序或者執行緒可以搶占cpu,即搶占式排程。儲存器也可以搶占,如記憶體換頁。一般來說,可搶占資源不會引...