銀行家演算法

2021-09-12 13:16:49 字數 301 閱讀 2740

銀行家演算法

在銀行中,客戶申請貸款的數量是有限的,每個客戶在第一次申請貸款時要宣告完成該專案所需的最大資金量,在滿足所有貸款要求時,客戶應及時歸還。銀行家在客戶申請的貸款數量不超過自己擁有的最大值時,都應盡量滿足客戶的需要。在這樣的描述中,銀行家就好比作業系統,資金就是資源,客戶就相當於要申請資源的程序。

銀行家演算法是一種最有代表性的避免死鎖的演算法。在避免死鎖方法中允許程序動態地申請資源,但系

統在進行資源分配之前,應先計算此次分配資源的安全性,若分配不會導致系統進入不安全狀態,則分配,否則等待。為實現銀行家演算法,系統必須設定若干資料結構。

銀行家演算法

我們可以把作業系統看作是銀行家,作業系統管理的資源相當於銀行家管理的資金,程序向作業系統請求分配資源相當於使用者向銀行家貸款。為保證資金的安全,銀行家規定 1 當乙個顧客對資金的最大需求量不超過銀行家現有的資金時就可接納該顧客 2 顧客可以分期貸款,但貸款的總數不能超過最大需求量 3 當銀行家現有的...

銀行家演算法

銀行家演算法 banker s algorithm 是乙個避免死鎖 deadlock 的著名演算法,是由艾茲格 迪傑斯特拉在1965年為t.h.e系統設計的一種避免死鎖產生的演算法。它以銀行借貸系統的分配策略為基礎,判斷並保證系統的安全執行。就像我們從銀行貸快一樣,首先銀行會考慮到我們有沒有償還能力...

銀行家演算法

死鎖是作業系統層面的乙個錯誤,是程序死鎖的簡稱,最早在 1965 年由 dijkstra 在研究銀行家演算法時提出的,它是計算機作業系統乃至整個併發程式設計領域最難處理的問題之一。事實上,計算機世界有很多事情需要多執行緒方式去解決,因為這樣才能最大程度上利用資源,才能體現出計算的高效。但是,實際上來...