11 大話避免死鎖之銀行家演算法

2022-03-13 03:03:45 字數 767 閱讀 6793

銀行家演算法,顧名思義,是仿照銀行發放貸款採取的控制方式而設計的一種死鎖避免演算法.

該演算法的策略是實現動態避免死鎖.要明白此演算法,就要明**行的貸款策略.

銀行的目的是讓利潤最大化,風險最低,為了控制風險,在放貸之前,要先審核客戶的信用額度.客戶對資金的使用是按階段的,並不是一定第一次就得到全部貸款,以後隨著需要再次申請.為了簡單起見:只要客戶的信用額度不超過銀行的全部流動財產,即予以批准.

在客戶均守信的情況下,銀行唯一的風險就是無法滿足所有客戶的信用額度,從而無法收回貸款,這裡無法收回貸款是因為客戶資金不夠,無法完成任務並返還貸款造成的.

總結來說,銀行家演算法是乙個動態避免死鎖演算法,通過對資源的仔細分配以避免死鎖.其特點是可以超額批准客戶的信用額度,即所有客戶的信用額度之和可以超過銀行的全部資本,這就是槓桿.

動態避免的缺陷就是需要知道你將來需要什麼,而由於我們沒有什麼有效的辦法計算出乙個執行緒所需要的資源額度,因此在實際的操作中沒有採用這種動態避免方法.但是銀行家卻有這種能力解決這個問題.他們通過一種複雜的公式計算出你的信用額度.大部分時候這種計算比較保守,可以避免進入死鎖狀態.當然,他們也有算錯的時候,比如美國2007-2008美國的次貸危機就是這種錯誤計算的乙個例項.因為他們錯算了客戶的信用額度,使得很多人還不起款,從而導致美國的金融危機

避免死鎖 銀行家演算法

了解了什麼是死鎖,以及死鎖產生的原因,懂得如何去避免死鎖。在前面 作業系統之 死鎖問題 已經提到。在死鎖的避免上有現今有兩種比較著名的方案,一是有序資源分配法,二是銀行家演算法。這裡講述一下銀行家演算法。銀行家演算法 banker s algorithm 是乙個避免死鎖 deadlock 的著名演算...

死鎖,銀行家演算法

我們知道作業系統中很多種資源,如cpu,記憶體,io裝置等,每種資源又有很多例項,對於這些資源,程序該如何訪問?請求 獲取 申請空閒資源 使用 占用 程序占用資源 釋放 資源狀態由占用變為空閒 為了更好的了解死鎖,我們將資源分類 1 預防死鎖。這是一種較簡單和直觀的事先預防的方法。方法是通過設定某些...

死鎖與銀行家演算法

死鎖定義 死鎖是指兩個或兩個以上的程序在執行過程中,由於競爭資源或者由於彼此通訊而造成的一種阻塞的現象,若無外力作用,它們都將無法推進下去。此時稱系統處於死鎖狀態或系統產生了死鎖,這些永遠在互相等待的程序稱為死鎖程序。死鎖條件 1 互斥條件 指程序對所分配到的資源進行排它性使用,即在一段時間內某資源...