求一個(gè)完美銀行家算法實(shí)現(xiàn)的C++程序
//cout調(diào)用銀行家算法;bSafe=banker(iAllocation,iNeed,iAvailable,cName);if (bSafe) //安全,則輸出變化后的數(shù)據(jù) output(iMax,iAllocation,iNeed,iAvailable,cName);break;case n:cout退出。
銀行家算法:設(shè)進(jìn)程i提出請(qǐng)求Request[j],則銀行家算法按如下規(guī)則進(jìn)行判斷。(1) 如果Request[j]≤Need[i,j],則轉(zhuǎn)向(2),否則認(rèn)為出錯(cuò)。
(1) 如果Requesti[j]≤Need[i,j],便轉(zhuǎn)向步驟2;否則認(rèn)為出錯(cuò),因?yàn)樗枰馁Y源數(shù)已超過(guò)它所宣布的最大值。(2) 如果Requesti[j]≤Available[j],便轉(zhuǎn)向步驟(3);否則, 表示尚無(wú)足夠資源,Pi須等待。
銀行家算法的代碼
. 銀行家算法 設(shè)Requesti是進(jìn)程Pi的請(qǐng)求向量,如果Requesti[j]=K,表示進(jìn)程Pi需要K個(gè)Rj類型的資源。
它是最具有代表性的避免死鎖的算法。設(shè)進(jìn)程cusneed提出請(qǐng)求REQUEST [i],則銀行家算法按如下規(guī)則進(jìn)行判斷。(1)如果REQUEST [cusneed] [i]= NEED[cusneed][i],則轉(zhuǎn)(2);否則,出錯(cuò)。
這種算法其實(shí)是按照銀行家算法,統(tǒng)計(jì)學(xué)上一般都用這種算法,比傳統(tǒng)的四舍五入要科學(xué)。在VB、.net相關(guān)的語(yǔ)言中都有這個(gè)問(wèn)題。
擴(kuò)展的銀行家算法 就是銀行家算法的擴(kuò)展。描述:n:系統(tǒng)中的進(jìn)程個(gè)數(shù)。m:系統(tǒng)中的資源類型數(shù)。Available(1:m):現(xiàn)有資源向量。Available(j)=k 表示有k個(gè)未分配的j類資源。
預(yù)防死鎖、避免死鎖(銀行家算法)、檢測(cè)死鎖(資源分配)、解除死鎖:剝奪資源、撤銷進(jìn)程 遞歸鎖 在Python中為了支持同一個(gè)線程中多次請(qǐng)求同一資源,Python提供了可重入鎖。
按期提交完整的程序代碼、可執(zhí)行程序和課程設(shè)計(jì)報(bào)告。課程設(shè)計(jì)題目描述 銀行家算法是一種最有代表性的避免死鎖的算法。 要解釋銀行家算法,必須先解釋操作系統(tǒng)安全狀態(tài)和不安全狀態(tài)。
怎么寫(xiě)銀行家算法的代碼
1、設(shè)進(jìn)程cusneed提出請(qǐng)求REQUEST [i],則銀行家算法按如下規(guī)則進(jìn)行判斷。(1)如果REQUEST [cusneed] [i]= NEED[cusneed][i],則轉(zhuǎn)(2);否則,出錯(cuò)。
2、你這段代碼有輸出,怎么沒(méi)有包含 stdio.h 頭文件,你打錯(cuò)單詞了吧 studio.h studio是 套件、工作室 的意思吧 應(yīng)該是包含stdio.h,std是‘標(biāo)準(zhǔn) standard’的縮寫(xiě),io是 in/out 輸出輸入。
3、用銀行家算法判斷下述每個(gè)狀態(tài)是否安全。如果安全,說(shuō)明所有進(jìn)程是如何能夠運(yùn)行完畢的。如果不安全,說(shuō)明為什么可能出現(xiàn)死鎖。
4、頁(yè)面大小4096B,那頁(yè)內(nèi)需要12位才能表示,邏輯地址16位,也就是4位頁(yè)地址加12位頁(yè)內(nèi)偏移地址組成,那16位邏輯地址中前面的4位就是頁(yè)號(hào)。
銀行家算法
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、銀行家算法是最有代表性的避免死鎖算法,是Dijkstra提出的銀行家算法。這是由于該算法能用于銀行系統(tǒng)現(xiàn)金貸款的發(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)程還需要多少資源的情況。
6、銀行家算法是死鎖避免的重要算法。銀行家算法:資源==錢;收回資源==收回貸款;收不回資源==不會(huì)放貸;例題:假設(shè)系統(tǒng)中有三類互斥資源R1,R2,R3。
用銀行家算法判斷下述每個(gè)狀態(tài)是否安全
1、銀行家算法:資源==錢;收回資源==收回貸款;收不回資源==不會(huì)放貸;例題:假設(shè)系統(tǒng)中有三類互斥資源R1,R2,R3。
2、從上述分析中可以看出,此時(shí)存在一個(gè)安全序列{P0,P3,P4,P1,P2},故該狀態(tài)是安全的。
3、6 5 2 P5 0 0 1 4 0 6 5 6 按照各進(jìn)程狀態(tài)以及剩余資源,可以知道之后P3,即可回收已分配的資源,即處安全狀態(tài)。這是本人的理解,如有錯(cuò),請(qǐng)包涵指出。
操作系統(tǒng)題目,好的追加高分,感謝大蝦
因?yàn)橐患?jí)頁(yè)表域長(zhǎng)為10位,二級(jí)頁(yè)表域長(zhǎng)為10位,這樣一級(jí)頁(yè)表和二級(jí)頁(yè)表就都有2的10次方即1K個(gè)表項(xiàng),那么一個(gè)表的頁(yè)面容量為1K*1K等于1M頁(yè),也即對(duì)應(yīng)了1M個(gè)頁(yè)框咯。答案就是頁(yè)面容量為1M頁(yè),1M個(gè)頁(yè)框。
第一種:直接在快表中找到,只需訪問(wèn)一次內(nèi)存。所需時(shí)間為200+10ns。第二種,快表中找不到,還得去內(nèi)存中找。所需時(shí)間為,200+10+200ns。
在磁盤(pán)存取數(shù)據(jù)之前,我們必須將磁盤(pán)劃分為扇區(qū),以便磁盤(pán)控制器進(jìn)行讀寫(xiě)。這個(gè)過(guò)程稱為(分區(qū))設(shè)基址寄存器內(nèi)容為1000,在采用動(dòng)態(tài)重定位的系統(tǒng)中,當(dāng)執(zhí)行指令“LOAD A,2000”時(shí),操作數(shù)的實(shí)際地址是( c)。
與通用操作系統(tǒng)相比較,嵌入式操作系統(tǒng)在系統(tǒng)實(shí)時(shí)高效性、硬件的相關(guān)依賴性、軟件固態(tài)化以及應(yīng)用的專用性等方面具有較為突出的特點(diǎn)。
中斷位: 表示該頁(yè)是否已調(diào)入內(nèi)存 訪問(wèn)位: 記錄本頁(yè)在一段時(shí)間內(nèi)被訪問(wèn)次數(shù) 修改位: 表示該頁(yè)調(diào)入內(nèi)存后是否修改過(guò) 輔存地址:指出該頁(yè)在輔存上的地址 物理地址:5896 缺頁(yè)中斷,從輔存8000位置調(diào)入該頁(yè)。
解:1M內(nèi)存的情況:1)支持用戶進(jìn)程數(shù):(1024K-200K)/200K=12 所以4個(gè)用戶進(jìn)程。