概念:在乙個程序集合中,每個程序都在等待由該集合中的另乙個程序才能引發的事件而無限期的僵持下去的場面稱為死鎖。
舉例:橋有ab兩段,甲車從a到b,已車從b到a,當甲車在a上已車在b上時,發生死鎖。
資源有限且分配不當
1互斥條件
臨界資源在一段時間內只能由乙個資源占有
2占有且等待條件
乙個程序請求資源的得不到滿足而等待時,不釋放已占有資源
3不可搶占條件
乙個程序所占有的資源在用完之前,其他程序不能強行搶奪該資源
4迴圈等待條件
存在乙個迴圈等待鏈,比如p1等p2,p2等p3,p3等p1.
死鎖的預防、死鎖的避免、死鎖的監測和恢復
死鎖的預防就是在執行之前,預先防止死鎖的產生,主要是通過破壞產生死鎖的 4 個必要條件中任何乙個來實現的。
死鎖的避免是在系統執行過程中注意避免死鎖的發生,這就要求系統每當在程序申請資源時,都應根據一定的演算法進行判斷,僅當系統處於安全狀態時才把資源分配給程序,使系統一直處於安全狀態之中,從而避免死鎖。
安全序列:針對當前分配狀態來說,系統至少能夠按照某種次序為每個程序分配資源(直至最大需求),並且使他們一次成功地執行完畢,這種程序序列就是安全序列。如果存在這樣乙個安全序列,則系統此時是安全的。
靜態分配資源策略: 要求每乙個程序在開始執行前就要申請它所需要的全部資源, 僅當系統能滿足程序的資源申請要求時才把資源分配給程序, 該程序才能開始執行 (注意,所有併發執行的程序要求的資源總和不能超過系統擁有的資源數)。
按序分配資源策略:把系統中所有資源排乙個順序,對每乙個資源給乙個確定的編號,規定任何乙個程序申請兩個以上資源時總是先申請編號小的資源,後申請編號大的資源(或者先申請編號大的,後申請編號小的資源)。系統按程序對資源的申請順序來分配資源。按序分配策略將阻止死鎖 的第四個條件(迴圈等待條件)的出現。
銀行家演算法
簡述:
假定乙個銀行家擁有資金,被 n 個客戶共享。
銀行家對客戶提出下列約束條件是:
①每個客戶必須預先說明自己所要求的最大資金量;
②每個客戶每次提出部分資金量申請和獲得分配;
③如果銀行滿足了客戶對資金的最大需求量,那麼,客戶在資金運作後,應在有限時間內全部歸還銀行。
銀行家演算法是把作業系統比作銀行家,作業系統管理的各種資源比作銀行的周轉資金,申請資源的程序比作向銀行借款的客戶。銀行家占有有限的資金,他不可能滿足所有客戶的請求,但可以滿足一部分客戶的借款請求,等這些客戶歸還後,又可把這筆資金借給其它客戶,其原則是不能使銀行家的錢被借完,使資金無法周轉。
作業系統第三版(孟慶昌)第一章習題答案
1.計算機系統主要由哪些部分組成?計算機系統由硬體系統和軟體系統兩部分組成。硬體系統主要由 處理器 儲存器 輸入輸出控制系統和各種外部裝置組成。軟體分為系統軟體 支撐軟體和應用軟體。系統軟體由作業系統 實用程式 編譯程式等組成。支撐軟體有介面軟體 工具軟體 環境資料庫等,它能支援用機的環境,提供軟體...
作業系統第三章概要
處理機排程 多道程式環境下,動態的把處理機分配給就緒佇列中的乙個程序使之執行。提高處理機的利用率 改善系統效能,很大程度上取決於處理機排程的效能。作業進入系統駐留在外存的後備佇列上,再至調入記憶體執行完畢,可能要經歷下述 排程 高階排程又稱作業排程或長程排程 接納排程 中級排程又稱交換排程或中程排程...
作業系統習題(第三章)
第三章互斥與同步 1.設有n個程序,共享乙個資源r,但每個時刻只允許乙個程序使用r。演算法如下 設定乙個整型陣列flag n 其每個元素對應表示乙個程序對r的使用狀態,若為0表示該程序不在使用r,為1表示該程序要求或正在使用r,所有元素的初值均為0。process pi 2.有三個程序r,m,p,r...