模擬請(qǐng)求頁式存儲(chǔ)管理中硬件的地址轉(zhuǎn)換和缺頁中斷,并用先進(jìn)先出調(diào)度算法(FIFO)處理缺頁中斷_第1頁
模擬請(qǐng)求頁式存儲(chǔ)管理中硬件的地址轉(zhuǎn)換和缺頁中斷,并用先進(jìn)先出調(diào)度算法(FIFO)處理缺頁中斷_第2頁
模擬請(qǐng)求頁式存儲(chǔ)管理中硬件的地址轉(zhuǎn)換和缺頁中斷,并用先進(jìn)先出調(diào)度算法(FIFO)處理缺頁中斷_第3頁
模擬請(qǐng)求頁式存儲(chǔ)管理中硬件的地址轉(zhuǎn)換和缺頁中斷,并用先進(jìn)先出調(diào)度算法(FIFO)處理缺頁中斷_第4頁
模擬請(qǐng)求頁式存儲(chǔ)管理中硬件的地址轉(zhuǎn)換和缺頁中斷,并用先進(jìn)先出調(diào)度算法(FIFO)處理缺頁中斷_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課程名稱操作系統(tǒng)原理實(shí)驗(yàn)名稱虛擬頁式管理姓 名 學(xué)號(hào) 專業(yè)班級(jí) 網(wǎng)絡(luò)實(shí)驗(yàn)日期 成績(jī) 指導(dǎo)教師 趙安科(實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)原理主要儀器設(shè)備實(shí)驗(yàn)內(nèi)容與步驟實(shí)驗(yàn)數(shù)據(jù)記錄與處理實(shí)驗(yàn)結(jié)果與分析問題建議)實(shí)驗(yàn)二 模擬請(qǐng)求頁式存儲(chǔ)管理中硬件的地址轉(zhuǎn)換和缺頁中斷,并用先進(jìn)先出調(diào)度算法(FIFO)處理缺頁中斷1 .內(nèi)容:模擬請(qǐng)求頁式存儲(chǔ)管理中硬件的地址轉(zhuǎn)換和缺頁中斷處理2 .思想:裝入新頁置換舊頁時(shí),若舊頁在執(zhí)行中沒有被修改過,則不必將該頁重寫磁盤。因此,頁表中增加是否修改過的標(biāo)志,執(zhí)行“存”指令和“寫”指令時(shí)將對(duì)應(yīng)的修改標(biāo)志置成“1表示修改過,否則為"0"表示未修改過。頁表格式如下:頁號(hào)標(biāo)志頁架

2、號(hào)修改標(biāo)志在磁盤上位置3 .要求及方法:設(shè)計(jì)一個(gè)地址轉(zhuǎn)換程序來模擬硬件的地址轉(zhuǎn)換和缺頁中斷。當(dāng)訪問的頁在主存時(shí)則 形成絕對(duì)地址,但不去模擬指令的執(zhí)行,可以輸出轉(zhuǎn)換后的絕對(duì)地址來表示一條指令已執(zhí)行 完成。當(dāng)訪問的頁不在主存中時(shí),則輸出“*頁號(hào)”來表示硬件產(chǎn)生了一次缺頁中斷。模擬地址轉(zhuǎn)換流程見圖1。編制一個(gè)FIFO頁面調(diào)度程序;FIFO頁面調(diào)度算法總是先調(diào)出作業(yè)中最先進(jìn)入主存 中的哪一頁。因此可以用一個(gè)數(shù)組來表示(或構(gòu)成)頁號(hào)隊(duì)列。數(shù)組中每個(gè)元素是該作業(yè)已在主存中的頁面號(hào),假定分配給作業(yè)的頁架數(shù)為m且該作業(yè)開始的 m頁已裝入主存,則數(shù)組可由m個(gè)元素構(gòu)成。P0 , P1 , P2,,Pm-1K的初值

3、為“0”,當(dāng)產(chǎn)生缺頁它們的初值為 P0 : =0, P1 : =1, P2 : =2,,Pm-1 : =m-1用一指針K指示當(dāng)要調(diào)入新頁時(shí)應(yīng)調(diào)出的頁在數(shù)組中的位置,中斷后,操作系統(tǒng)總是選擇PK所指出的頁面調(diào)出,然后執(zhí)行:PK:二要裝入的新頁頁號(hào)K: =(k+1)mod m在實(shí)驗(yàn)中不必實(shí)際地啟動(dòng)磁盤執(zhí)行調(diào)出一頁和裝入一頁的工作,而用輸出“ OUT調(diào)出的頁號(hào)”和“IN要裝入的新頁頁號(hào)” 來模擬一次調(diào)出和裝入過程,模擬程序的流程圖見附圖1。按流程控制過程如下:1提不:輸入指令的頁號(hào)和頁內(nèi)偏移和是否存指令,若d為-1則結(jié)束,否則進(jìn)©非存指令入流程控制過程,得 P1和d,查表在主存時(shí),絕對(duì)地址

4、 =hxi024+d 假定主存中頁架大小為 1024個(gè)字節(jié),現(xiàn)有一個(gè)共 7頁的作業(yè),其副本已在磁盤上。系統(tǒng)為該作業(yè)分配了 4個(gè)頁架,且該作業(yè)的第0頁至第3頁已裝入內(nèi)存,其余3頁未裝入主 存,該作業(yè)的頁表如下:頁號(hào)標(biāo)志頁架號(hào)修改標(biāo)志在磁盤上位置0150011118001221900133110021400022500023600121如果該作業(yè)依次執(zhí)行的指令序列如下表所示:操作頁號(hào)頁內(nèi)地址操作頁號(hào)頁內(nèi)地址+0070移位4053+1050+5023X2015存1037存3021取2078取0056+4001一6040存6084依次執(zhí)行上述指令調(diào)試你所設(shè)計(jì)的程序(僅模擬指令的執(zhí)行,不考慮序列中具體操

5、作 的執(zhí)行)。 為進(jìn)一步考察程序的執(zhí)行,可自行確定若干組指令,運(yùn)行程序,核對(duì)執(zhí)行結(jié)果。4 .書寫實(shí)驗(yàn)報(bào)告:實(shí)驗(yàn)題目; 程序中所用的數(shù)據(jù)結(jié)構(gòu)及說明; 源程序并附上必要的說明; 按照指令的執(zhí)行序列,打印輸出結(jié)果:絕對(duì)地址或調(diào)出、調(diào)入的頁號(hào)。開始圖1 模擬算法流程代碼:#include<iostream>#include<iomanip>#include<list>using namespace std;char useSign125='+','-','*',"存"," 取",

6、'-'," 移位",'+'," 存","取",'+'," 存"int PageAddress12=70,50,15,21,56,40,53,23,37,78,01,84;int PageNum12=0,1,2,3,0,6,4,5,1,2,4,6;int S_Station;int pPageNum7; 頁號(hào) pPageint pSign7;int pStool7;頁架號(hào)int pModify7;/ 修改標(biāo)志int pStation7;/磁盤位置static int z

7、=0;void Store()for(int i=0;i<7;i+) if(i<4) pSigni=1; elsepSigni=0;pPageNumi=i;pModifyi=0;int p1=1,p2=2,p3=3;for(i=0;i<7;i+)if(i<3)pStationi=p1;p1+; else if(i<6) pStationi=p2; p2+; elsepStationi=p3;pStool0=5;pStool1=8;pStool2=9;pStool3=1;void CShow()cout<<"操作"cout<&l

8、t;"頁號(hào)"cout<<"頁內(nèi)地址"cout<<"標(biāo)志"cout<<"絕對(duì)地址"cout<<"修改頁號(hào)"cout<<"頁架號(hào)"cout<<"絕對(duì)地址"cout<<endl;void Find()int m_Pagenum;int m_Station;int Y_Station;/絕對(duì)地址int m_Stool;cout<<"輸入頁號(hào)及頁內(nèi)地址查詢操作:

9、"cin>>m_Pagenum>>m_Station;CShow();int i,j=0;/string m_Modify;for(i=0;i<12;i+)if(PageAddressi=m_Station)break;Y_Station=pStoolm_Pagenum*1024+m_Station;if(pSignm_Pagenum=1)if(strcpy(useSigni," 存")!=0)pModifym_Pagenum=1; ) ) cout<<useSigni<<" " cout&

10、lt;<m_Pagenum<<" " cout<<m_Station<<" " cout<<pSignm_Pagenum<<" " if(Y_Station!=m_Station) cout<<Y_Station<<" " cout<<" " cout<<pStoolm_Pagenum<<" " cout<<Y_Station<<

11、;endl; ) else cout<<"*"<<m_Pagenum<<" " for(j=z;j<7;j+) if(pSignj=1) z+; break; ) ) cout<<m_Pagenum<<"->"<<j<<""pStoolm_Pagenum=pStoolj;pSignj=0;pStoolj=0;cout<<pStoolm_Pagenum<<" "cout<&

12、lt;pStoolm_Pagenum*1024+m_Station<<endl;) ) int main(void) Store();char judge='Y' while(judge='Y') Find();cout<<"是否繼續(xù)輸入?Y = 是N=否"<<endl;cin>>judge;return 0;5 .實(shí)驗(yàn)分析與總結(jié)在實(shí)驗(yàn)過程中,遇到了一些問題但是在調(diào)試的過程中,會(huì)出現(xiàn)很多錯(cuò)誤,有的自己可以解決,也有一些在老師的幫助下,解決了問題。不能說本次試驗(yàn)很完美,但是我從中得到了不少的收獲,

13、 掌握了請(qǐng)求頁式管理中硬件的地址轉(zhuǎn)換和缺頁中斷的原理,同時(shí)理解了先進(jìn)先出的調(diào)度算法。以后定會(huì)再接再厲了,多學(xué)些理論知識(shí)來指導(dǎo)實(shí)踐。'F:C 1- +AAAAAAAAAAAAAAAAAAAhhhiPfrbughhh.eye*箱A頁號(hào)及頁內(nèi)晅址查畫哀性 臊作頁號(hào)頁丙才阻上0 Tfi標(biāo)志,否娃續(xù)者2 u 跖八 皆 營(yíng)杏鞋絳輸人?1標(biāo)志70:V-是4否SBv -是H-否麟頁號(hào)解內(nèi)寫顆隹y1否繼蹄人? 丫 是M 否R*標(biāo)志內(nèi)地打杳溝舞作,4 S3 頁內(nèi)郵 標(biāo)志539? Y工是 祚否鞋頁號(hào)鵲內(nèi)嘴需鼾:簿醞4FH舊否建續(xù)輸入? 丫 -是 H.否除頁號(hào)解內(nèi)嚶郵,B5t:一否理瞳輸入? * 是N 否胞對(duì)

14、地lit5150絕又拙啦S242鮑對(duì)地址9231抱對(duì)地址IfKb儺址517G絕至煙址 *£絕對(duì)地址修改頁號(hào)修或頁號(hào)修改頁母修改頁號(hào)修效頁號(hào)修雙頁號(hào) G-MJ修改頁號(hào) 1->1頁架號(hào) 5燈架號(hào) e頁架號(hào) ?頁架號(hào) 1頁架號(hào)頁架號(hào)頁架號(hào)s葩對(duì)地址 51VU整對(duì)地址B242葩對(duì)地址9231抱對(duì)地址1IH5她對(duì)地址 5176絕前地址Sl&fl地對(duì)地址U4S'F:C+ +AAAAAAAAAAAAAAAAAAAhhhDebug|i hh.ejte'卜 610岸舌啦續(xù)輸入? * 是、頁號(hào)及頁內(nèi)地址查E 頁號(hào) 頁丙 523B 33標(biāo)志-是nTH-S作:1 37 標(biāo)志鏟號(hào)瓶嘟沙耀 g?Sg否堆陵睛人? ¥ =是 H語鏟號(hào)督

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論