銀行家算法
1、銀行家算法(Bankers Algorithm)是一個避免死鎖(Deadlock)的著名算法,是由艾茲格·迪杰斯特拉在1965年為T.H.E系統(tǒng)設(shè)計的一種避免死鎖產(chǎn)生的算法。它以銀行借貸系統(tǒng)的分配策略為基礎(chǔ),判斷并保證系統(tǒng)的安全運行。
2、作為避免死鎖的一種算法,銀行家算法可以說是最為出名的了。這個名字的來源是因為該算法起初是為銀行系統(tǒng)設(shè)計的,以確保銀行在發(fā)放現(xiàn)金貸款時,不會發(fā)生不能滿足所有客戶需要的情況。在操作系統(tǒng)中也可以用它來實現(xiàn)避免死鎖。
3、銀行家算法是一種預(yù)防死鎖的算法。具體算法步驟可以參考百度百科: 銀行家算法 例子 :某系統(tǒng)有A、B、C、D , 4類資源共5個進程(P0、PPPP4)共享,各進程對資源的需求和分配情況如下表所示。
4、什么是銀行家算法:銀行家算法是一種最有代表性的避免死鎖的算法。在避免死鎖方法中允許進程動態(tài)地申請資源,但系統(tǒng)在進行資源分配之前,應(yīng)先計算此次分配資源的安全性,若分配不會導(dǎo)致系統(tǒng)進入不安全狀態(tài),則分配,否則等待。
5、銀行家算法問題是研究一個銀行家如何將其總數(shù)一定的現(xiàn)金安全地借給若干個顧客,使這些顧客既能滿足對資金的要求,又能完成其交易,也使銀行家可以收回自己的全部現(xiàn)金不致于破產(chǎn)。
6、銀行家算法:銀行家算法是從當(dāng)前狀態(tài)出發(fā),按照系統(tǒng)各類資源剩余量逐個檢查各進程需要申請的資源量,找到一個各類資源申請量均小于等于系統(tǒng)剩余資源量的進程P1。
“銀行家算法”是怎樣的一個算法?
1、銀行家算法(Bankers Algorithm)是一個避免死鎖(Deadlock)的著名算法,是由艾茲格·迪杰斯特拉在1965年為T.H.E系統(tǒng)設(shè)計的一種避免死鎖產(chǎn)生的算法。它以銀行借貸系統(tǒng)的分配策略為基礎(chǔ),判斷并保證系統(tǒng)的安全運行。
2、銀行家算法問題是研究一個銀行家如何將其總數(shù)一定的現(xiàn)金安全地借給若干個顧客,使這些顧客既能滿足對資金的要求,又能完成其交易,也使銀行家可以收回自己的全部現(xiàn)金不致于破產(chǎn)。
3、銀行家算法是一種最有代表性的避免死鎖的算法。在避免死鎖方法中允許進程動態(tài)地申請資源,但系統(tǒng)在進行資源分配之前,應(yīng)先計算此次分配資源的安全性,若分配不會導(dǎo)致系統(tǒng)進入不安全狀態(tài),則分配,否則等待。
4、銀行家算法是從當(dāng)前狀態(tài)出發(fā),逐個按安全序列檢查各客戶中誰能完成其工作,然后假定其完成工作且歸還全部貸款,再進而檢查下一個能完成工作的客戶。如果所有客戶都能完成工作,則找到一個安全序列,銀行家才是安全的。
5、銀行家算法中的數(shù)據(jù)結(jié)構(gòu)。為了實現(xiàn)銀行家算法,在系統(tǒng)中必須設(shè)置這樣四個數(shù)據(jù)結(jié)構(gòu),分別用來描述系統(tǒng)中可利用的資源,所有進程對資源的最大需求,系統(tǒng)中的資源分配以及所有進程還需要多少資源的情況。
6、銀行家算法是一種預(yù)防死鎖的算法。具體算法步驟可以參考百度百科: 銀行家算法 例子 :某系統(tǒng)有A、B、C、D , 4類資源共5個進程(P0、PPPP4)共享,各進程對資源的需求和分配情況如下表所示。
關(guān)于銀行家算法
銀行家算法是一種最有代表性的避免死鎖的算法。在避免死鎖方法中允許進程動態(tài)地申請資源,但系統(tǒng)在進行資源分配之前,應(yīng)先計算此次分配資源的安全性,若分配不會導(dǎo)致系統(tǒng)進入不安全狀態(tài),則分配,否則等待。
現(xiàn)在,算法得出這樣一條順序,先優(yōu)先供應(yīng)p3,等p3完成他的線程后,p3會釋放所占有的資源。銀行家(系統(tǒng))利用p3所有的資源和自己手里剩余的資源按順序供應(yīng)p0,p4 等等。
②采用銀行家算法進行計算分析可知:系統(tǒng)可以滿足P2進程對資源的請求,將資源分配給P2之后,至少可以找到一個安全的執(zhí)行序列,如(P2, P1, P3, P4)使各進程正常運行終結(jié)。