




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上操作系統(tǒng)課程設計專題:頁面置換算法任務:設計一個虛擬存儲區(qū)和內(nèi)存工作區(qū),編程序演示下述算法的具體實現(xiàn)過程,并計算訪問命中率:要求設計主界面以靈活選擇某算法,且以下算法都要實現(xiàn)1)先進先出算法(FIFO)2)最近最久未使用算法(LRU)3)最佳置換算法(OPT)思想:1. 最佳置換算法:最佳置換算法是一種理論上的算法,其所選擇的被淘汰頁面,將是以后永不使用的,或者是在最長(未來)時間內(nèi)不再被訪問的頁面。采用最佳置換算法,通??杀WC獲得最低的缺頁率。7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 177722224440000000777000
2、00333222221111100001111000333332222212. 先進先出頁面置換算法:這是最早出現(xiàn)的置換算法。該算法總是淘汰最先進入內(nèi)存的頁面,即使選擇在內(nèi)存中駐留時間最久的頁面予以淘汰。該算法實現(xiàn)簡單,只需把一個進程已調(diào)入內(nèi)存的頁面,按先后次序連接成一個隊列,并設置一個指針,成為替換指針,使它總是指向最老的頁面。但該算法與進程實際運行的規(guī)律不相適應,因為在進程中,有些頁面經(jīng)常被訪問,所以先進先出算法并不能保證這些頁面不被淘汰。7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 17772222444000111111100000000033333300
3、000001113332222222227773. 最近最久未使用置換算法:最久最久未使用的頁面置換算法,是根據(jù)頁面調(diào)入的先后的使用情況進行決策的。該算法賦予每個頁面一個訪問字段,用來記錄一個頁面自上次被訪問以來經(jīng)歷的時間t,當須淘汰一個頁面時,選擇現(xiàn)有頁面中其t值最大的,即使最近最久未使用的頁面予以淘汰。最近最久未使用算法7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1777222222222222227770000000444000000000000111333333331111111任務目的:1通過模擬實現(xiàn)請求頁式存儲管理的幾種基本頁面置換算法,了解虛擬儲技
4、術的特點。2通過對頁面、頁表、地址轉換和頁面置換過程的模擬,加深對請求調(diào)頁系統(tǒng)的原理和實現(xiàn)過程的理解。3掌握虛擬存儲請求頁式存儲管理中幾種基本頁面置換算法的基本思想和實現(xiàn)過程,并比較它們的效率。方案:輸入頁面序列,缺頁時按FIFO、LRU、OPT的策略進行頁面置換,輸出置換情況和缺頁次數(shù)。假設頁面數(shù)不超過pSIZE。process20表示簡化了的頁表,只包含頁號序列。mSIZE表示分配給該進程的塊數(shù)。Count用來表示置換次數(shù)。初始化:輸入分配的塊數(shù)mSIZE,輸入頁面序列,存放于數(shù)組process20中。按照循環(huán),依次查找頁面是否存在于頁表中,不存在則置換頁面,初始為0,變化同上。格式化依次
5、輸出訪問下一個頁面后的頁表,然后輸出缺頁中斷總次數(shù)框圖:程序:#include #include #define mSIZE 3#define pSIZE 20static int memerymSIZE=0,0,0;static int processpSIZE=0;void FIFO();void LRU();void OPT();int main() int code,password; get(); do printf(-n); printf(| * * * |n); printf(| 1.FIFO * * * * * |n); printf(| * * |n); printf(| 2
6、.LRU * * * * * * * |n); printf(| * * * * * * * * |n); printf(| 3.OPT * * * * * * |n); printf(| * * * * * * * |n); printf(| 4.EXIT * * * * * * |n); printf(-*-n); printf(enter your choice:); scanf(%d,&code); switch(code) case 1: FIFO(); break; case 2: LRU(); break; case 3: OPT(); break; case 4:break;
7、while (code!=4); system(PAUSE); return 0;get() int i,n; for(i=0;i20;i+) printf(process%d=,i); scanf(%d,&processi) ; printf(n); void FIFO() int memerymSIZE=0,0,0; int timemSIZE=0,0,0; int i,j,k; int max=0; int count=0; for(i=0;ipSIZE;i+) printf(%d ,processi); printf(n); for(i=0;imSIZE;i+) memeryi=pro
8、cessi; timei=i; for(j=0;jmSIZE;j+) printf(%d ,memeryj); printf(n); /*前mSIZE個數(shù)直接放入*/ for(i=mSIZE;ipSIZE;i+) for(j=0,k=0;jmSIZE;j+) if(memeryj!=processi) k+; /*判斷新頁面號是否在物理塊中*/ if(k=mSIZE)/*如果都不在物理塊中*/ count+; if(time0time1) max=0; else max=1; if(time2timemax) max=2; memerymax=processi; timemax=i; for(
9、j=0;jmSIZE;j+) printf(%d ,memeryj); printf(n); else for(j=0;jmSIZE;j+) printf(%d ,memeryj); printf(n); printf(time:%dn,count); printf(min zhong lv=%d%,(20-count)*100/20); getch();void LRU() int memerymSIZE=0,0,0; int flagmSIZE=0,0,0; int i,j,k; int max=0,maxflag=0; int count=0; for(i=0;ipSIZE;i+) pr
10、intf(%d ,processi); printf(n); for(i=0;imSIZE;i+) memeryi=processi; flagi=i; for(j=0;jmSIZE;j+) printf(%d ,memeryj); printf(n); /*前mSIZE個數(shù)直接放入*/ for(i=mSIZE;ipSIZE;i+) for(j=0,k=0;jmSIZE;j+) if(memeryj!=processi) k+; else flagj=i; /*判斷新頁面號是否在物理塊中*/ if(k=mSIZE)/*如果都不在物理塊中*/ count+; if(flag0flag1) max
11、=0; else max=1; if(flag2flagmax) max=2; memerymax=processi; flagmax=i; for(j=0;jmSIZE;j+) printf(%d ,memeryj); printf(n); else for(j=0;jmSIZE;j+) printf(%d ,memeryj); printf(n); printf(time:%dn,count); printf(min zhong lv=%d%,(20-count)*100/20); getch();void OPT() int memerymSIZE = 0,0,0; int nextmS
12、IZE=0; int i,j,k,l; int count=0,maxnext,max; for(i=0;ipSIZE;i+) printf(%d ,processi); printf(n); for(i=0;imSIZE;i+) memeryi=processi; for(j=0;jmSIZE;j+) printf(%d ,memeryj); printf(n); /*前mSIZE個數(shù)直接放入*/ for(i=mSIZE;ipSIZE;i+) for(j=0,k=0;jmSIZE;j+) if(memeryj!=processi) k+; /*判斷新頁面號是否在物理塊中*/ if(k=mSI
13、ZE)/*如果都不在物理塊中*/ count+; for(l=i+1;lpSIZE;l+) if(memery0=processl) next0=l; goto lin1; next0=l; goto lin1; lin1:for(l=i+1;lpSIZE;l+) if(memery1=processl) next1=l; goto lin2; next1=l; goto lin2; lin2:for(l=i+1;l=next1) max=0; else max=1; if(next2=nextmax) max=2; memerymax=processi; for(j=0;jmSIZE;j+) printf(%d ,memeryj); printf(n); else for(j=0;jmSIZE;j+) printf(%d ,memeryj); printf(n); printf(time=%dn,count); printf(min zhong lv=%d%,(20-count)*100/20);getch()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中小學健康飲食教育工作計劃
- 六年三數(shù)學下冊復學后階段目標計劃
- 第一學期高三英語階段測評計劃
- 積分商城采購合同
- 2025幼兒園辦公室財務管理工作計劃
- 高三化學第二輪復習計劃復習計劃
- 以蘇州大學為例探究高校文創(chuàng)產(chǎn)品開發(fā)的創(chuàng)新設計路徑
- 學校辦公室人員職責與工作分工詳述他
- 以考促讀:小學語文閱讀考級的實踐探索與成效研究
- 塔吊防碰撞聲光報警措施
- 開業(yè)美容項目活動方案
- 2025至2030高純氯化鉀行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- ××中學實驗室?;饭芾砑殑t
- 家政服務培訓 課件
- 醫(yī)學美容技術專業(yè)教學標準(高等職業(yè)教育專科)2025修訂
- 2025年婚姻家庭咨詢師職業(yè)資格考試試題及答案
- 2025年人教版小學五年級下冊數(shù)學期末重難點測評試題(含答案和解析)
- 2024年天津市應急管理局招聘行政執(zhí)法專職技術檢查員筆試真題
- 變電站創(chuàng)優(yōu)工程匯報
- 廣西壯族自治區(qū)欽州市2024-2025學年高二上學期期末檢測歷史試題(含答案)
- 項目部主要管理制度
評論
0/150
提交評論