1. 程式人生 > >銀行家演算法基本原理

銀行家演算法基本原理

銀行家把一定數量的資金供多個使用者週轉使用。
當顧客對資金的最大申請量不超過銀行家現金時,就可接納,顧客可以分期借款;
但借款總數不能超過最大申請量,銀行家對顧客的借款可以推遲支付,但總能在有限的時間裡得到借款;
當顧客得到全部資金後,他一定能在有限時間裡面歸還所有資金。

Max:執行緒對資源最大需求
Allocation:系統分配已分配給執行緒每類資源的數目
Need:執行緒還需要的資源數
Available:系統還剩下的資源數。

在這裡插入圖片描述
例如上面這個情況。
系統有ABC三種資源,銀行家演算法就是對比Available和Need,如果能滿足需求就分配資源,執行完畢並釋放所有資源,
系統現在有3個A,2個B,3個C,可以滿足Th1 Th3 Th4
執行Th1後,並把原有的資源也釋放出來,系統就有4個A,3個B,4個C,然後繼續去找能執行哪一個。