2020年虛擬存儲(chǔ)器實(shí)驗(yàn)報(bào)告_第1頁
2020年虛擬存儲(chǔ)器實(shí)驗(yàn)報(bào)告_第2頁
2020年虛擬存儲(chǔ)器實(shí)驗(yàn)報(bào)告_第3頁
2020年虛擬存儲(chǔ)器實(shí)驗(yàn)報(bào)告_第4頁
2020年虛擬存儲(chǔ)器實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

虛擬存儲(chǔ)器實(shí)驗(yàn)報(bào)告 一、實(shí)驗(yàn)題目 虛擬存儲(chǔ)器模擬分頁式存儲(chǔ)管理中硬件的地址轉(zhuǎn)換和產(chǎn)生缺頁中斷。 二、實(shí)驗(yàn)?zāi)康募耙?在計(jì)算機(jī)系統(tǒng)中,為了提高主存利用率,往往把輔助存儲(chǔ)器(如磁盤)作為主存儲(chǔ)器的擴(kuò)充,使多道運(yùn)行的作業(yè)的全部邏輯地址空間總和可以超出主存的絕對(duì)地址空間。用這種辦法擴(kuò)充的主存儲(chǔ)器稱為虛擬存儲(chǔ)器。通過本實(shí)驗(yàn)幫助同學(xué)理解在分頁式存儲(chǔ)管理中怎樣實(shí)現(xiàn)虛擬存儲(chǔ)器。 三、環(huán)境(軟、硬件平臺(tái)) 軟件:c+6.0 硬件:pc機(jī) 四、實(shí)驗(yàn)內(nèi)容和步驟 (1) 分頁式虛擬存儲(chǔ)系統(tǒng)是把作業(yè)信息的副本存放在磁盤上,當(dāng)作業(yè)被選中 時(shí),可把作業(yè)的開始幾頁先裝入主存且啟動(dòng)執(zhí)行。為此,在為作業(yè)建立頁 其中,標(biāo)志-用來表示對(duì)應(yīng)頁是否已經(jīng)裝入主存,標(biāo)志位=1,則表示該 頁已經(jīng)在主存,標(biāo)志位=0,則表示該頁尚未裝入主存。 主存塊號(hào)-用來表示已經(jīng)裝入主存的頁所占的塊號(hào)。 在磁盤上的位置-用來指出作業(yè)副本的每一頁被存放在磁盤上的位置。 (2) 作業(yè)執(zhí)行時(shí),指令中的邏輯地址指出了參加運(yùn)算的操作存放的頁號(hào)和單元 號(hào),硬件的地址轉(zhuǎn)換機(jī)構(gòu)按頁號(hào)查頁表,若該頁對(duì)應(yīng)標(biāo)志為“1”,則表示該頁已在主存,這時(shí)根據(jù)關(guān)系式: 絕對(duì)地址=塊號(hào)塊長+單元號(hào) 計(jì)算出欲訪問的主存單元地址。如果塊長為2的冪次,則可把塊號(hào)作為高地址部分,把單元號(hào)作為低地址部分,兩者拼接而成絕對(duì)地址。若訪 問的頁對(duì)應(yīng)標(biāo)志為“0”,則表示該頁不在主存,這時(shí)硬件發(fā)“缺頁中斷”信號(hào),有操作系統(tǒng)按該頁在磁盤上的位置,把該頁信息從磁盤讀出裝入主存后再重新執(zhí)行這條指令。 (3) 設(shè)計(jì)一個(gè)“地址轉(zhuǎn)換”程序來模擬硬件的地址轉(zhuǎn)換工作。當(dāng)訪問的頁在主 存時(shí),則形成絕對(duì)地址,但不去模擬指令的執(zhí)行,而用輸出轉(zhuǎn)換后的地址來代替一條指令的執(zhí)行。當(dāng)訪問的頁不在主存時(shí),則輸出“* 該頁頁號(hào)”,表示產(chǎn)生了一次缺頁中斷。該模擬程序的算法如圖2-1。 (4)假定主存的每塊長度為128個(gè)字節(jié);現(xiàn)有一個(gè)共七頁的作業(yè),其中第0頁至第3頁已經(jīng)裝入主存,其余三頁尚未裝入主存;該作業(yè)的頁表為: 如果作業(yè)依次執(zhí)行的指令序列為: (4) 運(yùn)行設(shè)計(jì)的地址轉(zhuǎn)換程序,顯示或打印運(yùn)行結(jié)果。因僅模擬地址轉(zhuǎn)換,并 不模擬指令的執(zhí)行,故可不考慮上述指令序列中的操作。 五、運(yùn)行代碼 #include #include list using namespace std; #define N 11 #define M 12 #define MEMORYBLOK 10 #define LENGTH 128 struct page int number; int flag; int frame; int location; int change; ; struct action char operate; int pageNum; int offset; ; struct page pageTableN; list actionForm; void init() page p第一文庫網(wǎng)age0 = 0,0,5,11,0; pageTable0 = page0; page page1 = 1,1,8,12,0; pageTable1 = page1; page page2 = 2,1,9,13,0; pageTable2 = page2; page page3 = 3,1,1,21,0; pageTable3 = page3; page page4 = 4,0,-1,22,0; pageTable4 = page4; page page5 = 5,0,-1,23,0; pageTable5 = page5; page page6 = 6,0,-1,121,0; pageTable6 = page6; / pageTable7 = page6; pageTable8 = page6; pageTable9 = page6; pageTable10 = page6; /對(duì)的初始化 /*for(int i=0; i Qi = -1; for(i=0; i Pi = -1; for(i=0;i if(pageTablei.flag = 1) PK=i; K = (K+1)%MEMORYBLOK; for(i=0; i if(pageTablei.flag = 1) int frame = pageTablei.frame; Qframe = pageTablei.number; */ action a1=+,1,70; action a2=+,1,50; action a3=*,2,15; action a4=s,3,21; action a5=g,0,56; action a6=-,6,40; action a7=y,4.53; action a8=+,5,23; action a9=s,1,37; action a10=g,2,78; action a11=+,4,1; action a12=s,6,84; actionForm.push_back(a1); actionForm.push_back(a2); actionForm.push_back(a3); actionForm.push_back(a4); actionForm.push_back(a5); actionForm.push_back(a6); actionForm.push_back(a7); actionForm.push_back(a8); actionForm.push_back(a9); actionForm.push_back(a10); actionForm.push_back(a11); actionForm.push_back(a12); void run() while( !actionForm.empty() ) action a = actionForm.front(); cout if(a.operate=s) cout else if(a.operate=g) cout else if(a.operate=y) cout else cout int pageNum = a.pageNum; /如果不在主存中 if (pageTablepageNum.flag = 0) cout /計(jì)算絕對(duì)地址 else int result; result = pageTablepageNum.frame*LENGTH + a.offset; cout pageTablepageNum.change = 1; actionForm.pop_front(); main() init(); run(); return 0; 六、運(yùn)行結(jié)果 七、實(shí)驗(yàn)總結(jié) 有了上一次的實(shí)驗(yàn),我對(duì)c+6.0這一軟件已經(jīng)有了而初步的認(rèn)識(shí),在本次上機(jī)前我對(duì)實(shí)驗(yàn)進(jìn)行了玉溪,對(duì)實(shí)驗(yàn)的原理和實(shí)驗(yàn)的設(shè)計(jì)也有了初步的了解,在具體的實(shí)驗(yàn)操作過程中,主要考驗(yàn)的是細(xì)心和耐心,一旦某個(gè)細(xì)節(jié)忽略了就很容易出現(xiàn)錯(cuò)誤,造成大量時(shí)間的浪費(fèi),所以在做一些細(xì)節(jié)步驟的時(shí)候一定要細(xì)心和耐心。最后是驗(yàn)證,通過驗(yàn)證我

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論