操作系統(tǒng)銀行家算法題
1、銀行家算法是死鎖避免的重要算法。銀行家算法:資源==錢(qián);收回資源==收回貸款;收不回資源==不會(huì)放貸;例題:假設(shè)系統(tǒng)中有三類互斥資源R1,R2,R3。
2、P2提出 Request(1 2 0 0) Avaliable( 1 5 1 2),可以將資源分配給它。補(bǔ)充:分配后可用資源變?yōu)?(1 5 1 2)- (1 2 0 0) = (0 3 1 2),按照上題的分析方法步驟,狀態(tài)就不安全了。
3、從上述分析中可以看出,此時(shí)存在一個(gè)安全序列{P0,P3,P4,P1,P2},故該狀態(tài)是安全的。
4、②采用銀行家算法進(jìn)行計(jì)算分析可知:系統(tǒng)可以滿足P2進(jìn)程對(duì)資源的請(qǐng)求,將資源分配給P2之后,至少可以找到一個(gè)安全的執(zhí)行序列,如(P2, P1, P3, P4)使各進(jìn)程正常運(yùn)行終結(jié)。
5、(2) 如果Requesti[j]≤Available[j],便轉(zhuǎn)向步驟(3);否則, 表示尚無(wú)足夠資源,Pi須等待。
操作系統(tǒng)-銀行家算法問(wèn)題
銀行家算法是死鎖避免的重要算法。銀行家算法:資源==錢(qián);收回資源==收回貸款;收不回資源==不會(huì)放貸;例題:假設(shè)系統(tǒng)中有三類互斥資源R1,R2,R3。
銀行家算法: 設(shè)Requesti是進(jìn)程Pi的請(qǐng)求向量,如果Requesti[j]=K,表示進(jìn)程Pi需要K個(gè)Rj類型的資源。
0 3 4 2 0 ②采用銀行家算法進(jìn)行計(jì)算分析可知:系統(tǒng)可以滿足P2進(jìn)程對(duì)資源的請(qǐng)求,將資源分配給P2之后,至少可以找到一個(gè)安全的執(zhí)行序列,如(P2, P1, P3, P4)使各進(jìn)程正常運(yùn)行終結(jié)。
要解釋銀行家算法,必須先解釋操作系統(tǒng)安全狀態(tài)和不安全狀態(tài)。
關(guān)于銀行家算法
1、銀行家算法是一種最有代表性的避免死鎖的算法。在避免死鎖方法中允許進(jìn)程動(dòng)態(tài)地申請(qǐng)資源,但系統(tǒng)在進(jìn)行資源分配之前,應(yīng)先計(jì)算此次分配資源的安全性,若分配不會(huì)導(dǎo)致系統(tǒng)進(jìn)入不安全狀態(tài),則分配,否則等待。
2、現(xiàn)在,算法得出這樣一條順序,先優(yōu)先供應(yīng)p3,等p3完成他的線程后,p3會(huì)釋放所占有的資源。銀行家(系統(tǒng))利用p3所有的資源和自己手里剩余的資源按順序供應(yīng)p0,p4 等等。
3、2 2 2 0 2 1 0 3 4 2 0 ②采用銀行家算法進(jìn)行計(jì)算分析可知:系統(tǒng)可以滿足P2進(jìn)程對(duì)資源的請(qǐng)求,將資源分配給P2之后,至少可以找到一個(gè)安全的執(zhí)行序列,如(P2, P1, P3, P4)使各進(jìn)程正常運(yùn)行終結(jié)。
4、用銀行家算法判斷下述每個(gè)狀態(tài)是否安全。如果安全,說(shuō)明所有進(jìn)程是如何能夠運(yùn)行完畢的。如果不安全,說(shuō)明為什么可能出現(xiàn)死鎖。
5、此時(shí)系統(tǒng)是安全的,寫(xiě)出當(dāng)前需求矩陣和當(dāng)前資源總數(shù)就可以知道了,存在安全序列DABCE。要問(wèn)進(jìn)程b可不可以立即分配,先假設(shè)可以分配,然后更新矩陣,在看看是不是存在安全矩陣就ok了,e進(jìn)程也是一樣的。
下列關(guān)于銀行家算法的敘述中,正確的是
1、銀行家算法是避免死鎖的算法,故 B 選項(xiàng)錯(cuò)誤;只要能使系統(tǒng)始終都處于安全狀態(tài),便可避免發(fā)生死鎖,故 C 選項(xiàng)錯(cuò)誤。
2、在存儲(chǔ)器管理中,頁(yè)面是信息的 物理 單位,分段是信息的 邏輯 單位。頁(yè)面大小由 系統(tǒng) 確定,分段大小由_用戶程序確定。
3、答案是:EF6AH 理由是:頁(yè)面大小為4096字節(jié),4096等于2的12次方。故頁(yè)內(nèi)地址為12位。又邏輯地址長(zhǎng)度為16位。故高4位表示頁(yè)號(hào)。則邏輯地址2F6AH在第2頁(yè)。根據(jù)頁(yè)表可知,第2頁(yè)存于第14塊中。
4、銀行家算法是操作系統(tǒng)設(shè)計(jì)中避免死鎖的方法之一。 5 原型化方法中,一個(gè)基于既靈活又是集成的數(shù)據(jù)字典的軟件結(jié)構(gòu)為原型人員提供了一個(gè)完整的記錄管理系統(tǒng)。 5 SQL語(yǔ)言支持?jǐn)?shù)據(jù)庫(kù)的外模式、模式和內(nèi)模式結(jié)構(gòu)。
5、分時(shí)系統(tǒng)中,時(shí)間片越小越好。 銀行家算法是防止死鎖發(fā)生的方法之一。 若無(wú)進(jìn)程處于運(yùn)行狀態(tài),則就緒隊(duì)列和等待隊(duì)列均為空。 作業(yè)控制語(yǔ)言是供用戶編寫(xiě)程序以實(shí)現(xiàn)某項(xiàng)計(jì)算任務(wù)。
銀行家算法
1、銀行家算法(Bankers Algorithm)是一個(gè)避免死鎖(Deadlock)的著名算法,是由艾茲格·迪杰斯特拉在1965年為T(mén).H.E系統(tǒng)設(shè)計(jì)的一種避免死鎖產(chǎn)生的算法。它以銀行借貸系統(tǒng)的分配策略為基礎(chǔ),判斷并保證系統(tǒng)的安全運(yùn)行。
2、銀行家算法(Bankers Algorithm)是一種用于避免計(jì)算機(jī)系統(tǒng)中死鎖的算法。其基本思想是在系統(tǒng)資源分配給進(jìn)程之前,先計(jì)算每個(gè)進(jìn)程所需資源量與系統(tǒng)實(shí)際資源量之間的差值,然后根據(jù)這個(gè)差值判斷該進(jìn)程是否會(huì)發(fā)生死鎖。
3、銀行家算法問(wèn)題是研究一個(gè)銀行家如何將其總數(shù)一定的現(xiàn)金安全地借給若干個(gè)顧客,使這些顧客既能滿足對(duì)資金的要求,又能完成其交易,也使銀行家可以收回自己的全部現(xiàn)金不致于破產(chǎn)。
4、銀行家算法是一種最有代表性的避免死鎖的算法。要解釋銀行家算法,必須先解釋操作系統(tǒng)安全狀態(tài)和不安全狀態(tài)。
5、銀行家算法中的數(shù)據(jù)結(jié)構(gòu)。為了實(shí)現(xiàn)銀行家算法,在系統(tǒng)中必須設(shè)置這樣四個(gè)數(shù)據(jù)結(jié)構(gòu),分別用來(lái)描述系統(tǒng)中可利用的資源,所有進(jìn)程對(duì)資源的最大需求,系統(tǒng)中的資源分配以及所有進(jìn)程還需要多少資源的情況。
銀行家算法的不安全狀態(tài)
1、不存在一個(gè)安全序列。不安全狀態(tài)不一定導(dǎo)致死鎖。
2、狀態(tài)A是安全的,狀態(tài)B是不安全的。首先,從狀態(tài)A來(lái)說(shuō),目前可分配資源數(shù)是1,而用戶3正好差一個(gè)資源,所以分配給用戶3,用戶3執(zhí)行完畢,就可以釋放6個(gè)資源,這樣,其他三個(gè)用戶也都可以完成了。
3、要解釋銀行家算法,必須先解釋操作系統(tǒng)安全狀態(tài)和不安全狀態(tài)。 安全狀態(tài):如果存在一個(gè)由系統(tǒng)中所有進(jìn)程構(gòu)成的安全序列P1,…,Pn,則系統(tǒng)處于安全狀態(tài)。安全狀態(tài)一定是沒(méi)有死鎖發(fā)生。 不安全狀態(tài):不存在一個(gè)安全序列。不安全狀態(tài)不一定導(dǎo)致死鎖。
4、此時(shí)稱該進(jìn)程推進(jìn)序列為安全序列,如果無(wú)法找到這樣一個(gè)安全序列,則稱系統(tǒng)處于不安全狀態(tài)。銀行家算法中的數(shù)據(jù)結(jié)構(gòu)。