操作系統(tǒng)銀行家算法
在銀行家算法中,操作系統(tǒng)通過分析進(jìn)程當(dāng)前的資源占用情況,預(yù)測其未來的資源需求情況,決定是否分配資源給該進(jìn)程,從而避免了資源浪費(fèi)和爭奪的情況,提高了資源的利用率,銀行家算法可以有效地提高資源利用率,減少資源浪費(fèi)。
銀行家算法是死鎖避免的重要算法。銀行家算法:資源==錢;收回資源==收回貸款;收不回資源==不會(huì)放貸;例題:假設(shè)系統(tǒng)中有三類互斥資源R1,R2,R3。
銀行家算法是一種最有代表性的避免死鎖的算法。在避免死鎖方法中允許進(jìn)程動(dòng)態(tài)地申請資源,但系銀行家算法統(tǒng)在進(jìn)行資源分配之前,應(yīng)先計(jì)算此次分配資源的安全性,若分配不會(huì)導(dǎo)致系統(tǒng)進(jìn)入不安全狀態(tài),則分配,否則等待。
銀行家算法(操作系統(tǒng))
1、(1) 如果Requesti[j]≤Need[i,j],便轉(zhuǎn)向步驟2;否則認(rèn)為出錯(cuò),因?yàn)樗枰馁Y源數(shù)已超過它所宣布的最大值。(2) 如果Requesti[j]≤Available[j],便轉(zhuǎn)向步驟(3);否則, 表示尚無足夠資源,Pi須等待。
2、銀行家算法是死鎖避免的重要算法。銀行家算法:資源==錢;收回資源==收回貸款;收不回資源==不會(huì)放貸;例題:假設(shè)系統(tǒng)中有三類互斥資源R1,R2,R3。
3、作為避免死鎖的一種算法,銀行家算法可以說是最為出名的了。這個(gè)名字的來源是因?yàn)樵撍惴ㄆ鸪跏菫殂y行系統(tǒng)設(shè)計(jì)的,以確保銀行在發(fā)放現(xiàn)金貸款時(shí),不會(huì)發(fā)生不能滿足所有客戶需要的情況。在操作系統(tǒng)中也可以用它來實(shí)現(xiàn)避免死鎖。
4、要解釋銀行家算法,必須先解釋操作系統(tǒng)安全狀態(tài)和不安全狀態(tài)。
淺析銀行家算法
銀行家算法中的數(shù)據(jù)結(jié)構(gòu)。為了實(shí)現(xiàn)銀行家算法,在系統(tǒng)中必須設(shè)置這樣四個(gè)數(shù)據(jù)結(jié)構(gòu),分別用來描述系統(tǒng)中可利用的資源,所有進(jìn)程對資源的最大需求,系統(tǒng)中的資源分配以及所有進(jìn)程還需要多少資源的情況。(1)可利用資源向量Available。
操作系統(tǒng)(死鎖避免)---銀行家算法解題
死鎖的處理 銀行家算法是死鎖避免的重要算法。銀行家算法:資源==錢;收回資源==收回貸款;收不回資源==不會(huì)放貸;例題:假設(shè)系統(tǒng)中有三類互斥資源R1,R2,R3。
銀行家算法用于解決死鎖的避免。銀行家算法是一種最有代表性的避免死鎖的算法。要解釋銀行家算法,必須先解釋操作系統(tǒng)安全狀態(tài)和不安全狀態(tài)。
死鎖的避免是讓系統(tǒng)處于安全狀態(tài),來避免發(fā)生死鎖。安全狀態(tài):如果操作系統(tǒng)能保證所有的進(jìn)程在有限的時(shí)間內(nèi)得到需要的全部資源,則稱系統(tǒng)處于“安全狀態(tài)”。
②采用銀行家算法進(jìn)行計(jì)算分析可知:系統(tǒng)可以滿足P2進(jìn)程對資源的請求,將資源分配給P2之后,至少可以找到一個(gè)安全的執(zhí)行序列,如(P2, P1, P3, P4)使各進(jìn)程正常運(yùn)行終結(jié)。
銀行家算法是如何實(shí)現(xiàn)的?
銀行家算法是死鎖避免的經(jīng)典算法,其核心思想是:進(jìn)程動(dòng)態(tài)地申請資源,每次申請資源時(shí)系統(tǒng)都執(zhí)行安全狀態(tài)檢查算法判斷本次申請是否會(huì)造成系統(tǒng)處于不安全狀態(tài),如果不安全則阻塞進(jìn)程;如果安全狀態(tài),則完成資源分配。
設(shè)進(jìn)程cusneed提出請求REQUEST [i],則銀行家算法按如下規(guī)則進(jìn)行判斷。(1)如果REQUEST [cusneed] [i]= NEED[cusneed][i],則轉(zhuǎn)(2);否則,出錯(cuò)。
銀行家算法中的數(shù)據(jù)結(jié)構(gòu)。為了實(shí)現(xiàn)銀行家算法,在系統(tǒng)中必須設(shè)置這樣四個(gè)數(shù)據(jù)結(jié)構(gòu),分別用來描述系統(tǒng)中可利用的資源,所有進(jìn)程對資源的最大需求,系統(tǒng)中的資源分配以及所有進(jìn)程還需要多少資源的情況。(1)可利用資源向量Available。
銀行家算法問題是研究一個(gè)銀行家如何將其總數(shù)一定的現(xiàn)金安全地借給若干個(gè)顧客,使這些顧客既能滿足對資金的要求,又能完成其交易,也使銀行家可以收回自己的全部現(xiàn)金不致于破產(chǎn)。