操作系統(tǒng)(死鎖避免)---銀行家算法解題
死鎖的處理 銀行家算法是死鎖避免的重要算法。銀行家算法:資源==錢;收回資源==收回貸款;收不回資源==不會放貸;例題:假設(shè)系統(tǒng)中有三類互斥資源R1,R2,R3。
銀行家算法用于解決死鎖的避免。銀行家算法是一種最有代表性的避免死鎖的算法。要解釋銀行家算法,必須先解釋操作系統(tǒng)安全狀態(tài)和不安全狀態(tài)。
銀行家算法是一種最有代表性的避免死鎖的算法。在避免死鎖方法中允許進(jìn)程動態(tài)地申請資源,但系 銀行家算法統(tǒng)在進(jìn)行資源分配之前,應(yīng)先計算此次分配資源的安全性,若分配不會導(dǎo)致系統(tǒng)進(jìn)入不安全狀態(tài),則分配,否則等待。
②采用銀行家算法進(jìn)行計算分析可知:系統(tǒng)可以滿足P2進(jìn)程對資源的請求,將資源分配給P2之后,至少可以找到一個安全的執(zhí)行序列,如(P2, P1, P3, P4)使各進(jìn)程正常運行終結(jié)。
作為避免死鎖的一種算法,銀行家算法可以說是最為出名的了。這個名字的來源是因為該算法起初是為銀行系統(tǒng)設(shè)計的,以確保銀行在發(fā)放現(xiàn)金貸款時,不會發(fā)生不能滿足所有客戶需要的情況。在操作系統(tǒng)中也可以用它來實現(xiàn)避免死鎖。
Dijkstra(1965)提出了一種能夠避免死鎖的調(diào)度算法,稱為銀行家算法(bankers algorithm),這是1節(jié)中給出的死鎖檢測算法的擴(kuò)展。該模型基于一個小城鎮(zhèn)的銀行家,他向一群客戶分別承諾了一定的貸款額度。
淺析銀行家算法
1、銀行家算法中的數(shù)據(jù)結(jié)構(gòu)。為了實現(xiàn)銀行家算法,在系統(tǒng)中必須設(shè)置這樣四個數(shù)據(jù)結(jié)構(gòu),分別用來描述系統(tǒng)中可利用的資源,所有進(jìn)程對資源的最大需求,系統(tǒng)中的資源分配以及所有進(jìn)程還需要多少資源的情況。(1)可利用資源向量Available。
下列關(guān)于銀行家算法的敘述中,正確的是
1、銀行家算法是避免死鎖的算法,故 B 選項錯誤;只要能使系統(tǒng)始終都處于安全狀態(tài),便可避免發(fā)生死鎖,故 C 選項錯誤。
2、在存儲器管理中,頁面是信息的 物理 單位,分段是信息的 邏輯 單位。頁面大小由 系統(tǒng) 確定,分段大小由_用戶程序確定。
3、答案是:EF6AH 理由是:頁面大小為4096字節(jié),4096等于2的12次方。故頁內(nèi)地址為12位。又邏輯地址長度為16位。故高4位表示頁號。則邏輯地址2F6AH在第2頁。根據(jù)頁表可知,第2頁存于第14塊中。
4、銀行家算法是操作系統(tǒng)設(shè)計中避免死鎖的方法之一。 5 原型化方法中,一個基于既靈活又是集成的數(shù)據(jù)字典的軟件結(jié)構(gòu)為原型人員提供了一個完整的記錄管理系統(tǒng)。 5 SQL語言支持?jǐn)?shù)據(jù)庫的外模式、模式和內(nèi)模式結(jié)構(gòu)。
5、分時系統(tǒng)中,時間片越小越好。 銀行家算法是防止死鎖發(fā)生的方法之一。 若無進(jìn)程處于運行狀態(tài),則就緒隊列和等待隊列均為空。 作業(yè)控制語言是供用戶編寫程序以實現(xiàn)某項計算任務(wù)。
銀行家算法是什么?
1、銀行家算法是最有代表性的避免死鎖算法,是Dijkstra提出的銀行家算法。這是由于該算法能用于銀行系統(tǒng)現(xiàn)金貸款的發(fā)放而得名。
2、銀行家算法問題是研究一個銀行家如何將其總數(shù)一定的現(xiàn)金安全地借給若干個顧客,使這些顧客既能滿足對資金的要求,又能完成其交易,也使銀行家可以收回自己的全部現(xiàn)金不致于破產(chǎn)。
3、銀行家算法是由艾茲格·迪杰斯特拉在1965年為T.H.E系統(tǒng)設(shè)計的一種避免死鎖產(chǎn)生的算法。
4、. 銀行家算法 設(shè)Requesti是進(jìn)程Pi的請求向量,如果Requesti[j]=K,表示進(jìn)程Pi需要K個Rj類型的資源。
5、銀行家算法是從當(dāng)前狀態(tài)出發(fā),逐個按安全序列檢查各客戶中誰能完成其工作,然后假定其完成工作且歸還全部貸款,再進(jìn)而檢查下一個能完成工作的客戶。如果所有客戶都能完成工作,則找到一個安全序列,銀行家才是安全的。
網(wǎng)絡(luò)操作系統(tǒng)中的銀行家算法是什么?
1、(4) 系統(tǒng)執(zhí)行安全性算法,檢查此次資源分配后,系統(tǒng)是否處于安全狀態(tài)。若安全,才正式將資源分配給進(jìn)程Pi,以完成本次分配;否則, 將本次的試探分配作廢,恢復(fù)原來的資源分配狀態(tài),讓進(jìn)程Pi等待。
2、銀行家算法是最有代表性的避免死鎖算法,是Dijkstra提出的銀行家算法。這是由于該算法能用于銀行系統(tǒng)現(xiàn)金貸款的發(fā)放而得名。
3、現(xiàn)在,算法得出這樣一條順序,先優(yōu)先供應(yīng)p3,等p3完成他的線程后,p3會釋放所占有的資源。銀行家(系統(tǒng))利用p3所有的資源和自己手里剩余的資源按順序供應(yīng)p0,p4 等等。
4、擴(kuò)展的銀行家算法 就是銀行家算法的擴(kuò)展。描述:n:系統(tǒng)中的進(jìn)程個數(shù)。m:系統(tǒng)中的資源類型數(shù)。Available(1:m):現(xiàn)有資源向量。Available(j)=k 表示有k個未分配的j類資源。
5、. 死鎖避免是在系統(tǒng)運行過程中避免死鎖的最終發(fā)生,死鎖避免方法就是使系統(tǒng)總是處于安全狀態(tài),死銷避免采用銀行家算法,就是當(dāng)需要給進(jìn)程分配資源時,如果分配以后系統(tǒng)是安全的則給予分配,否則不予以分配,死鎖避免方法使系統(tǒng)開銷增大。