freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)課程設(shè)計(jì)進(jìn)程_銀行家_頁(yè)面調(diào)度(文件)

 

【正文】 量 分配矩陣 int Allocation[i][j] 需求矩陣 int need[i][j]= Max[i][j] Allocation[i][j] 申請(qǐng)各類資源數(shù)量 int Request i[j] i 進(jìn)程申請(qǐng) j 資源的數(shù)量 工作向量 int Work[x] int Finish[y] ( 3)銀行家算法 進(jìn)程 i 發(fā)出請(qǐng)求申請(qǐng) k 個(gè) j 資源, Request i[j]=k a、檢查申請(qǐng)量是否不大于需求量: Request i[j]=need[i,j],若條件不符重新輸入,不允許申請(qǐng)大于需求量。 e、用 do{? }while 循環(huán)語(yǔ)句實(shí)現(xiàn)輸入字符 y/n 判斷是否繼續(xù)進(jìn)行資源申請(qǐng)。 b、在進(jìn)程中查找符合以下條件的進(jìn)程: 條件 1: Finish[i]=0; 條件 2: need[i][j]=Work[j] 若找到,則執(zhí)行步驟 (3)否則,執(zhí)行步驟 (4) c、當(dāng)進(jìn)程獲得資源后,可順利執(zhí)行,直至完成,并釋放出分配給它的資源,故應(yīng)執(zhí)行: Work[j]= Work[j]+ Allocation[i][j]; Finish[i]=1; goto step 2; d、如果所有的 Finish[i]=1 都滿足,則表示系統(tǒng)處于安全狀態(tài),否則,處于不安全狀態(tài)。 輸出提示:你的請(qǐng)求被拒! AVAILABLE[i]=REQUEST[i] ;ALLOCATION[i]=REQUEST[i]。//聲明 safe()安全性算法 void init()。 安全性算法 Safe()開(kāi)始 Work=AVAILABLE。 Work+=ALLOCATION[i]。 //進(jìn)程數(shù) system(color 0B)。 cout ▓▓ ▓▓ endl。 cout ▓▓ ★ 歡迎進(jìn)入銀行家算法調(diào)度系統(tǒng) ☆ ▓▓ endl。 cout ▓▓ ▓▓ endl。 cout ▓▓ ┃ ┃ ▓▓ endl。 cout ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ endl。 cinm。im。 fp=fopen(,r+)。i++) { fscanf(fp,%d,amp。 } fclose(fp)。 /************************************************************************/ /* 下面的被剛掉的為在 DOS 下輸入資源向量 */ /*未被剛掉的是從 文件中讀入數(shù)據(jù) */ /************************************************************************/ /* for ( i=0。jm。 cinMax[i][j]。in。Max[i][j])。 cout輸入已分配的 Allocationendl。in。j++) { cout 輸入分配 Rj類資源的數(shù)目 。 } Need[i][j]=Max[i][j]Allocation[i][j]。 for(i=0。j++) { fscanf(fp,%d,amp。 //在初始化 Max時(shí),同時(shí)修改 Available 數(shù)組 coutAllocation[i][j]39。 int safe(vectorint Available,vectorvectorint Need,vectorvectorint Allocation,int n,int m)。 int all=0。jm。 } int jc。 //如果 all==0,表示進(jìn)程已經(jīng)運(yùn)行完,如果 all=1,表示還有進(jìn)程沒(méi)有運(yùn)行完 //循環(huán)直至 all0,即找到一個(gè)未運(yùn)行完的進(jìn)程 cout任選一個(gè)進(jìn)程作為當(dāng)前進(jìn)程 0n1endl。j++) { all += Need[jc][j]。im。 } } ////////////////////////////////////////////////////////////////////////// //系統(tǒng)試探著把資源分配給該 進(jìn)程 /////////////////////////////////////////// for (i=0。 Need[jc][i]=Need[jc][i]Request[i]。 } else { cout系統(tǒng)未能成分配資源 ,收回預(yù)分配資源 endl。 Allocation[jc][i]=Allocation[jc][i]Request[i]。 if(again==39。) { all=0。//申請(qǐng)工作向量 work, finish Work=Available。im。i++) { int needed=1。 } else needed=needed*FALSE。jm。 count[len]=i。 for (i=0。 } } coutendl。 }} c、運(yùn)行截圖 檢測(cè)系統(tǒng)資源分配是否安全結(jié)果: 四、頁(yè)面調(diào)度算法 虛擬存儲(chǔ)器概念 : 局部性原理:程序在執(zhí)行時(shí)在一較短時(shí)間內(nèi)僅限于某個(gè)部分;相應(yīng)的,它所訪問(wèn)的存儲(chǔ)空間也局限于某個(gè)區(qū)域,它主要表現(xiàn)在以下兩個(gè)方面:時(shí)間局限性和空間局限性。 算法原理 分頁(yè)存儲(chǔ)管理將一個(gè)進(jìn)程的邏輯地址空間分成若干大小相等的片,稱為頁(yè)面或頁(yè)。 一個(gè)好的頁(yè)面置換算法,應(yīng)具有較低的頁(yè)面更換頻率。采用最佳置換算法,通??杀WC獲得最低的缺頁(yè)率。該算法實(shí)現(xiàn)簡(jiǎn)單只需把一個(gè)進(jìn)程已調(diào)入內(nèi)存的頁(yè)面,按先后次序鏈接成一個(gè)隊(duì)列,并設(shè)置一個(gè)指針,稱為替換指針,使它總是指向最老的頁(yè)面。該算法賦予每個(gè)頁(yè)面一個(gè)訪問(wèn)字段,用來(lái)記錄一個(gè)頁(yè)面自上次被訪問(wèn)以來(lái)所經(jīng)歷的時(shí)間 t,,當(dāng)須淘汰一個(gè)頁(yè)面時(shí),選擇現(xiàn)有頁(yè)面中其 t 值最 大的,即最近最久未使用的頁(yè)面予以淘汰。 /*物理塊中的頁(yè)號(hào) */ static int page[100]={0}。 void OPT()。 void mDelay(unsigned int Delay)。 printf( ━━━━━━━━━━━━━━━━━━━━━━━━━ \n)。 system(cls)。mSIZE)。 puts(請(qǐng)依次輸入頁(yè)面號(hào)引用串 (連續(xù)輸入,無(wú)需隔開(kāi) ): )。page[i])。 do{ puts(輸入的頁(yè)面號(hào)引用串為: )。(ipSIZE)amp。amp。 printf(* 請(qǐng)選擇頁(yè)面置換算法: \t\t\t *\n)。 printf(* * * * * * * * * * * * * * * * * * * * * * *\n)。 switch(code) { case 1: FIFO()。 case 3: OPT()。 designBy()。 default: printf(輸入錯(cuò)誤,請(qǐng)重新輸入: )。 }while (code!=4)。 printf(╔════════════╗ \n)。 printf( O)。 for(i=0。 } printf(\nFinish.\n載入成功,按任意鍵進(jìn)入置換算法選擇界面: )。Delay0。 } } } /*顯示設(shè)計(jì)者信息 */ void designBy() { printf( ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ \n)。 printf( ▓▓ ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆ ▓▓ \n)。 printf( ▓▓ ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆ ▓▓ \n)。 printf( ▓▓ ★ 歡迎進(jìn)入頁(yè)面置換算法調(diào)度系統(tǒng) ☆ ▓▓ \n)。 printf( ▓▓ ▓▓ \n)。i124。 } /*設(shè)置延遲 */ void mDelay(unsigned int Delay) { unsigned int i。i++) { mDelay((pSIZE+mSIZE)/2)。i51。 printf(╚════════════╝ \n)。 } /*載入數(shù)據(jù) */ void download() { int i。 getch()。 printf( 謝謝使用頁(yè)面置換算法演示器 !\n)。 case 4: system(cls)。 case 2: LRU()。 scanf(%d,amp。 printf(* (FIFO) (LRU) *\n)。 else printf(%d ,page[i])。(i20*(k+1))。k=(pSIZE1)/20。 system(cls)。ipSIZE。 scanf(%d,amp。 printf(請(qǐng)輸入物理塊的個(gè)數(shù) (M=10): )。 printf( )。 system(color 0B)。 void designBy()。 /*輔助數(shù)組 */ /*置換算法函數(shù) */ void FIFO()。 /*物理塊數(shù) */ int pSIZE。最近最久未使用( LRU)置換算法,是根據(jù)頁(yè)面調(diào)入內(nèi)存后的使用情況進(jìn)行決策的。 b、先進(jìn)先出 (FIFO)頁(yè)面置換算法 這是最早出現(xiàn)的置換算法。 a、最佳置換算法 OPT(Optimal) 它是由 Belady 于 1966 年提出的一種理論上的算法。但應(yīng)將哪 個(gè)頁(yè)面調(diào)出,須根據(jù)一定的算法來(lái)確定。 所謂 虛擬存儲(chǔ)器是只具有請(qǐng)求調(diào)入功能和置換功能,能從邏輯上對(duì)內(nèi)存容量進(jìn)行擴(kuò)充的一種存儲(chǔ)器系統(tǒng)。 } else { cout系統(tǒng)是不安全的 endl。i++) { coutcount[i]。 } } if (len==n1) { cout系統(tǒng)是安全的 endl。 } Finish[i]=TRUE。amp。jm。 for (i=0。 //記錄安全序列 int len=1。 } break。||again==39。 } } cout您還想再次請(qǐng)求分配嗎 ?是請(qǐng)按 y/Y,否請(qǐng)按其它鍵 endl。im。 bb=safe(Available,Need,Allocation,n,m)。i++) { Available[i]=Available[i]Request[i]。 while(Request[i]Need[jc][i]||Request[i]Available[i]) { cout請(qǐng)求向量無(wú)法滿足 endl。 } } cout輸入該進(jìn)程的請(qǐng)求向量 endl。 for (int j=0。 all=0。 if (0==all) { cout所有進(jìn)程已經(jīng)運(yùn)行完,結(jié)束 endl。in。 bank(Available,Need,Allocation,n,m)。 } coutendl。 Need[i][j]=Max[i][j]Allocation[i][j]。i++) {
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1