銀行家算法是一種最有代表性的避免死鎖的算法。又被稱為資源分配拒絕”法。
銀行家算法原理:
我們可以把操作系統(tǒng)看作是銀行家,操作系統(tǒng)管理的資源相當于銀行家管理的資金,進程向操作系統(tǒng)請求分配資源相當于用戶向銀行家貸款。
為保證資金的安全,銀行家規(guī)定:
(1) 當一個顧客對資金的最大需求量不超過銀行家現(xiàn)有的資金時就可接納該顧客;
(2) 顧客可以分期貸款,但貸款的總數(shù)不能超過最大需求量;
(3) 當銀行家現(xiàn)有的資金不能滿足顧客尚需的貸款數(shù)額時,對顧客的貸款可推遲支付,但總能使顧客在有限的時間里得到貸款;
(4) 當顧客得到所需的全部資金后,一定能在有限的時間里歸還所有的資金;
操作系統(tǒng)按照銀行家制定的規(guī)則為進程分配資源,當進程首次申請資源時,要測試該進程對資源的最大需求量,如果系統(tǒng)現(xiàn)存的資源可以滿足它的最大需求量則按當前的申請量分配資源,否則就推遲分配。當進程在執(zhí)行中繼續(xù)申請資源時,先測試該進程本次申請的資源數(shù)是否超過了該資源所剩余的總量。若超過則拒絕分配資源,若能滿足則按當前的申請量分配資源,否則也要推遲分配。
以上內容為銀行家算法原理的相關知識介紹,更多銀行知識請關注本站。