簡述銀行家算法的主要思想并說明該
1、銀行家算法問題是研究一個銀行家如何將其總數(shù)一定的現(xiàn)金安全地借給若干個顧客,使這些顧客既能滿足對資金的要求,又能完成其交易,也使銀行家可以收回自己的全部現(xiàn)金不致于破產(chǎn)。
2、銀行家算法的基本思想是分配資源之前,判斷系統(tǒng)是否是安全的;若是,才分配。它是最具有代表性的避免死鎖的算法。 設(shè)進(jìn)程cusneed提出請求REQUEST [i],則銀行家算法按如下規(guī)則進(jìn)行判斷。
3、銀行家算法的基本思想是分配資源之前,判斷系統(tǒng)是否是安全的;若是,才分配。它是最具有代表性的避免死鎖的算法。設(shè)進(jìn)程cusneed提出請求REQUEST [i],則銀行家算法按如下規(guī)則進(jìn)行判斷。
4、利用銀行家算法避免死鎖 . 銀行家算法 設(shè)Requesti是進(jìn)程Pi的請求向量,如果Requesti[j]=K,表示進(jìn)程Pi需要K個Rj類型的資源。
銀行家算法
1、銀行家算法(Bankers Algorithm)是一個避免死鎖(Deadlock)的著名算法,是由艾茲格·迪杰斯特拉在1965年為T.H.E系統(tǒng)設(shè)計(jì)的一種避免死鎖產(chǎn)生的算法。它以銀行借貸系統(tǒng)的分配策略為基礎(chǔ),判斷并保證系統(tǒng)的安全運(yùn)行。
2、作為避免死鎖的一種算法,銀行家算法可以說是最為出名的了。這個名字的來源是因?yàn)樵撍惴ㄆ鸪跏菫殂y行系統(tǒng)設(shè)計(jì)的,以確保銀行在發(fā)放現(xiàn)金貸款時,不會發(fā)生不能滿足所有客戶需要的情況。在操作系統(tǒng)中也可以用它來實(shí)現(xiàn)避免死鎖。
3、銀行家算法是一種預(yù)防死鎖的算法。具體算法步驟可以參考百度百科: 銀行家算法 例子 :某系統(tǒng)有A、B、C、D , 4類資源共5個進(jìn)程(P0、PPPP4)共享,各進(jìn)程對資源的需求和分配情況如下表所示。
4、銀行家算法是一種最有代表性的避免死鎖的算法。在避免死鎖方法中允許進(jìn)程動態(tài)地申請資源,但系銀行家算法統(tǒng)在進(jìn)行資源分配之前,應(yīng)先計(jì)算此次分配資源的安全性,若分配不會導(dǎo)致系統(tǒng)進(jìn)入不安全狀態(tài),則分配,否則等待。
5、銀行家算法問題是研究一個銀行家如何將其總數(shù)一定的現(xiàn)金安全地借給若干個顧客,使這些顧客既能滿足對資金的要求,又能完成其交易,也使銀行家可以收回自己的全部現(xiàn)金不致于破產(chǎn)。
6、銀行家算法是死鎖避免的重要算法。銀行家算法:資源==錢;收回資源==收回貸款;收不回資源==不會放貸;例題:假設(shè)系統(tǒng)中有三類互斥資源R1,R2,R3。
銀行家算法的多個安全序列的輸出
1、//cout調(diào)用銀行家算法;bSafe=banker(iAllocation,iNeed,iAvailable,cName);if (bSafe) //安全,則輸出變化后的數(shù)據(jù) output(iMax,iAllocation,iNeed,iAvailable,cName);break;case n:cout退出。
2、算法開始時work=Available;系統(tǒng)找安全序列的過程需要不斷判斷和修改當(dāng)前資源數(shù)量,不能直接修改原始數(shù)據(jù)記錄Aailable。v標(biāo)志向量Finish 表示每個進(jìn)程是否有足夠的資源使之運(yùn)行完成。
3、銀行家算法問題是研究一個銀行家如何將其總數(shù)一定的現(xiàn)金安全地借給若干個顧客,使這些顧客既能滿足對資金的要求,又能完成其交易,也使銀行家可以收回自己的全部現(xiàn)金不致于破產(chǎn)。
4、安全狀態(tài)檢查算法的思想是找到一個安全序列,使所有進(jìn)程都能執(zhí)行完畢。如果找到,則處于安全狀態(tài),否則為不安全狀態(tài)。