常用頁(yè)面置換算法模擬實(shí)驗(yàn)_第1頁(yè)
常用頁(yè)面置換算法模擬實(shí)驗(yàn)_第2頁(yè)
常用頁(yè)面置換算法模擬實(shí)驗(yàn)_第3頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、操作系統(tǒng)課程實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)地點(diǎn)實(shí)驗(yàn)時(shí)間實(shí)驗(yàn)課表 現(xiàn)出勤和個(gè)人表現(xiàn)Q1(15+15(組長(zhǎng)評(píng)分)=30分)得分:實(shí)驗(yàn) 總分(Q1+Q2+C3+Q4)實(shí)驗(yàn)完成情況Q2(45分(組 長(zhǎng)與教師評(píng)分的加權(quán)平均)得分:實(shí)驗(yàn)編號(hào)與實(shí)驗(yàn)名稱(chēng):第7次實(shí)驗(yàn)常用頁(yè)面置換算法模擬實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康模?.實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)模擬實(shí)現(xiàn)請(qǐng)求頁(yè)式存儲(chǔ)管理的幾種基本頁(yè)面置換算法,了解虛擬存儲(chǔ)技術(shù)的特點(diǎn), 掌握虛擬存儲(chǔ)請(qǐng)求頁(yè)式存儲(chǔ)管理中幾種基本頁(yè)面置換算法的基本思想和實(shí)現(xiàn)過(guò)程,并比較它 們的效率。實(shí)驗(yàn)內(nèi)容及要求(詳見(jiàn)實(shí)驗(yàn)講義與實(shí)驗(yàn)指導(dǎo)書(shū)):2. 實(shí)驗(yàn)要求:1) 要求用你熟悉的程序設(shè)計(jì)語(yǔ)言編寫(xiě)和調(diào)試一個(gè)頁(yè)面置換模擬程序;要求在主函數(shù)中測(cè) 試。2)

2、實(shí)驗(yàn)報(bào)告中必須包括:設(shè)計(jì)思想、數(shù)據(jù)定義(包括詳細(xì)說(shuō)明)、處理流程(詳細(xì)算法描述和算法流程圖)、源代碼、運(yùn)行結(jié)果、體會(huì)等部分。3) 必須模擬本實(shí)驗(yàn)內(nèi)容中提到的算法 中的至少2種頁(yè)面置換算法。4)比較不冋頁(yè)面置換算法的效率3. 實(shí)驗(yàn)內(nèi)容編寫(xiě)一個(gè)程序,使用以下頁(yè)面置換算法中的某2種分別模擬一個(gè)分頁(yè)系統(tǒng),并統(tǒng)計(jì)冋一個(gè)頁(yè)面訪冋序列情況下不冋頁(yè)面置換算法引發(fā)的缺頁(yè)中斷次數(shù)。1、第二次機(jī)會(huì)算法(Seco nd Cha nee)2、 最近最少使用算法(Least Recently Used, LRU )3、最不常用算法(Not Frequently Used , NFL)4、 最近未使用算法(Not Rece

3、ntly Used, NRU5、時(shí)鐘頁(yè)面置換算法6、老化算法(aging )頁(yè)框的數(shù)量固定為 4,虛擬頁(yè)面數(shù)為 &實(shí)驗(yàn)輸入為訪冋頁(yè)面序列,比如0, 1 , 3 , 2,7, 1實(shí)驗(yàn)用到的軟件(:)C-Free 5實(shí)驗(yàn)內(nèi)容及關(guān)鍵步驟(代碼)Q3( 15分)得分:代碼:#i nclude <stdio.h>#i nclude <stdlib.h>#include <string.h>#defi ne page_frame_ nu mber 4 /頁(yè)框數(shù)#defi ne virtual_page_ nu mber 8 / 虛擬頁(yè)面數(shù) int page_id

4、, counter = 0;/ 輸入 id 和計(jì)數(shù)器 char algorithm20;算法選擇int page_i nterrupt_ nu mber = 0;struct Page_tableint page_id; / 頁(yè)號(hào)int load_time; /裝入時(shí)間int last_visit_time; /最后訪問(wèn)時(shí)間page_tablepage_frame_ nu mber;(*(structint cmp(c onst void *p,c onst void *q)int c = (*(struct Page_table*)p).load_time Page table*)q).lo

5、ad time;if(c > 0)return 1;elsereturn -1;(*(structint cmp1(c onst void *p,c onst void *q)int c = (*(struct Page_table*)p).last_visit_time Page_table*)q).last_visit_time;if(c > 0)return 1;elsereturn -1;void in it()/ 初始化 int i;for(i = 0; i < page_frame_number; i+)page_tablei.page_id = -1; page

6、_tablei.load_time = -1; page_tablei.last_visit_time = -1; void prin t(i nt x)/ int i,j;打印信息switch(x) case 0:for(i = 0; i < 80; i+)prin tf("-"); prin tf("tt試驗(yàn)七常用頁(yè)面置換算法模擬頭驗(yàn)n");for(i = 0; i < 80; i+)prin tf("-");prin tf("n");printf("選擇算法:F/L (FIFO算法/LR

7、U 算法)n");break;case 1:printf("請(qǐng)輸入訪問(wèn)頁(yè)面的順序,以“-1 ”結(jié)束:n");break;case 2:printf("頁(yè)表信息:n頁(yè)號(hào)頁(yè)框號(hào)裝入時(shí)間最近訪問(wèn)時(shí)間n");for(j = 0; j < page_frame_ nu mber; j+)prin tf("%4d%8d%7d%7dn",page_tablej.page_id,j,page_tablej.load_ time,page_tablej.last_visit_time);break;case 3:for(i = 0; i

8、 < 80; i+)prin tf("-");printf("ttFIFO 算法模擬過(guò)程 n");for(i = 0; i < 80; i+)prin tf("-");prin tf("n");break;case 4:for(i = 0; i < 80; i+)prin tf("-");printf("ttLRU算法模擬過(guò)程 n");for(i = 0; i < 80; i+)prin tf("-");prin tf("

9、n");int judge()int i;for(i = 0; i < page_frame_ nu mber; i+) if(page_tablei.page_id = -1|page_tablei.page_id return i;return -1;void fifo()int j;prin t(3);prin t(1);while(1)scan f("%d",&page_id);if(page_id = -1)break;j = judge();if(j = -1)qsort(page_table,page_frame_ nu mber,Pa

10、ge_table), cmp);/按照最后訪問(wèn)時(shí)間從小到大排序page_tableO.page_id = page_id; page_table0.load_time = coun ter; page_tableO.last_visit_time = coun ter;page_i nterrupt_ nu mber+;elseif(page_tablej.page_id = -1) page_tablej.page_id = page_id; page_tablej.load_time = coun ter; page_tablej.last_visit_time = coun ter; p

11、age_i nterrupt_ nu mber+; 一 一elsepage_tablej.last_visit_time = coun ter;=page_id)sizeof(structkcoun ter+;prin t(2);prin tf("缺頁(yè)中斷次數(shù):dn",page_i nterrupt_number); 一 一void lru()int j;prin t(4);prin t(1);while(1)scan f("%d",&page_id);if(page_id = -1)break;j = judge();sizeof(struct

12、if(j = -1)qsort(page_table,page_frame_ nu mber,Page_table), cmp1);按照裝入時(shí)間從小到大排序page_tableO.page_id = page_id; page_table0.load_time = coun ter; page_tableO.last_visit_time = coun ter;page_i nterrupt_ nu mber+; 一 一elseif(page_tablej.page_id = -1) page_tablej.page_id = page_id; page_tablej.load_time =

13、coun ter; page_tablej.last_visit_time = coun ter; page_i nterrupt_ nu mber+; 一 一elsepage_tablej.last_visit_time = coun ter; 一一coun ter+;prin t(2);prin tf("缺頁(yè)中斷次數(shù):%dn",page_i nterrupt_number); 一 一 int mai n()prin t(0);in it();while(1)scan f("%s",algorithm);if(strcmp(algorithm,"F") = 0|strcmp(algorithm,"L") = 0) break;elseprintf("輸入出錯(cuò),請(qǐng)重新輸入n");if(strcmp(algorithm,"F") = 0) fifo();elselru();system("

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論