在程序對裝置、檔案等取得了排他性訪問權時,可能出現死鎖。
搶占資源與不可搶占資源
總的來說,死鎖與不可搶占資源有關。
請求乙個資源所需要的時間順序可以用抽象的形式表示如下:
1、請求資源
2、使用資源
3、釋放資源
死鎖的規範定義:乙個程序集合中的每個程序都在等待只能由該程序集合中的其他程序才能引發的時間,那麼,該程序集合就是死鎖的
資源死鎖的條件
1、互斥條件
2、占有和等待條件
3、不可搶占條件
4、環路等待條件
處理死鎖的方法
1、鴕鳥演算法
衡量解決成本和損失,將死鎖問題置之不理,出現時再解決
2、死鎖檢測和死鎖恢復
系統並不試圖組織死鎖的產生,而是允許死鎖發生,當檢測到死鎖發生後,再採取措施進行恢復。
可以依據矩陣對死鎖進行檢測
死鎖恢復可以通過搶占、回滾、殺死程序進行恢復
安全狀態和不安全狀態的區別:從安全狀態出發,系統能夠保證所有程序都能完成;從不完全狀態出發,就沒有這樣的保證。
銀行家演算法:一種理想情況下判斷能否解決死鎖的方法
稱其理想化的原因:很少有機程序能夠在執行前就知道其所需資源的最大值,而且程序數也不是固定的。另外原本可以用的資源也可能突然失效不能用了。
java後端面試 vipkid面試總結
一面 1 說說專案架構的過程 2 如果xml充當資料庫,dao層的實現 3 依賴注入的實現方式 4 寫乙個排序演算法 5 知道哪些設計模式,工廠模式有什麼用 6 談談怎麼保證併發安全,談到了不可變物件,同步容器,併發容器,堆疊封閉 7 談談物件建立的過程,變數物件是如何儲存的 8 談談微服務 9 談...
知乎Python後端面試總結
寫個快速排序熱熱身,分析一下複雜度,如果不使用額外的空間,應該怎麼寫?說一下flask中g是怎麼實現的,原理是什麼?說一下瀏覽器從輸入url到頁面渲染的過程,越詳細越好 了解web安全嗎?說一下xss原理,然後又問了很多 說一下csrf的理解 session和cookie的區別 資料庫的索引,說一下...
前端面試知識總結3
三面 面試技巧 業務能力 團隊協作能力 事物推動能力 跨組跨部門 帶人能力 其他能力 面試技巧 準備要充分 描述要演練 引導找時機 優勢要發揮 回答要靈活 業務能力 主動描述與被動回答 我做過什麼業務 負責的業務有什麼業績 使用了什麼技術方案 突破了什麼技術難點 遇到了什麼問題 最大的收穫是什麼 團...