資源分類:產生 死鎖的必要條件:可重用資源:課被多個程序多次使用
分為可搶占資源和不可搶占資源
例如:cpu處理器,i/o部件,記憶體,檔案,資料庫,訊號量
可消耗資源:只可使用一次,可建立和銷毀的資源
例如:訊號,中斷,資源
互斥使用資源分配圖:占有並等待
不可搶占
迴圈等待
資源類:方框死鎖定理:程序類:圓圈
如果資源分配圖中無環路則沒有死鎖,有環路可能會有死鎖(如果每個資源只有乙個資源例項則肯定有死鎖)解決死鎖的方法:化簡:先找到乙個只有分配邊的節點,去掉後將指向該節點的分配邊分配給另外等待該資源的節點
死鎖預防:破壞死鎖的四個必要條件1.破壞互斥使用和資源獨佔條件:
使用spooling技術或其他資源轉換技術
2.破壞占有並等待條件:
一次性申請所有需要的資源
3.破壞不可搶占技術:
可搶占,優先順序
4.破壞迴圈等待條件
資源有序分配法
死鎖避免
銀行家演算法
死鎖檢測與解除
檢測:檢測演算法
設定資源分配表和程序等待表
解除:roll back
撤銷所有死鎖程序
第十二章 檔案
文字檔案 文字檔案是一種由若干字元構成的檔案,可以用文字編輯器進行閱讀或編輯。以txt py html等為字尾的檔案都是文字檔案。2.二進位制檔案 二進位制檔案一般是指不能用文字編輯器閱讀或編輯的檔案。以 mp4 png等為字尾的檔案都是二進位制檔案,如果想要開啟或修改這些檔案,必須通過特定軟體進行...
第十二章 dp
動態規劃策略 將原始問題拆分為多個子問題,將子問題結果記錄,方便復用子問題的解 遞迴 記憶化 遞推 是動態規劃的一體兩面,本質都是一樣的 遞推減少了呼叫次數,空間上還能優化,一般選擇遞推方式 遞迴 記憶化 int memo maxn 將o 2 n o n intfibonacci int n 遞推 ...
第十二章 異常
一 異常的概念 錯誤 編譯器 異常 執行期,程式沒有正常按照期望執行 異常產生時,在對應位置產生異常型別物件,程式 暫停 如果上下文有異常處理程式,對應處理 沒有則 異常向上傳播 報錯退出 異常向上傳播 如果異常在函式中產生,會傳播給函式的呼叫者 如果異常在模組的頂級位置,會傳播給引用該模組的模組 ...