操作技巧系統(tǒng)實(shí)驗(yàn)五虛擬存儲(chǔ)器管理方案_第1頁(yè)
操作技巧系統(tǒng)實(shí)驗(yàn)五虛擬存儲(chǔ)器管理方案_第2頁(yè)
操作技巧系統(tǒng)實(shí)驗(yàn)五虛擬存儲(chǔ)器管理方案_第3頁(yè)
操作技巧系統(tǒng)實(shí)驗(yàn)五虛擬存儲(chǔ)器管理方案_第4頁(yè)
操作技巧系統(tǒng)實(shí)驗(yàn)五虛擬存儲(chǔ)器管理方案_第5頁(yè)
已閱讀5頁(yè),還剩8頁(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)實(shí)驗(yàn)五虛擬存儲(chǔ)器管理學(xué)號(hào) 1115102015姓名 方茹班級(jí) 11 電子A華僑大學(xué)電子工程系實(shí)驗(yàn)五虛擬存儲(chǔ)器管理實(shí)驗(yàn)?zāi)康?、理解虛擬存儲(chǔ)器概念。2、掌握分頁(yè)式存儲(chǔ)管理地址轉(zhuǎn)換盒缺頁(yè)中斷。實(shí)驗(yàn)內(nèi)容與基本要求1、模擬分頁(yè)式存儲(chǔ)管理中硬件的地址轉(zhuǎn)換和產(chǎn)生缺頁(yè)中斷。分頁(yè)式虛擬存儲(chǔ)系統(tǒng)是把作業(yè)信息的副本存放在磁盤(pán)上,當(dāng)作業(yè)被 選中時(shí),可把作業(yè)的開(kāi)始幾頁(yè)先裝入主存且啟動(dòng)執(zhí)行。為此,在為作業(yè) 建立頁(yè)表時(shí),應(yīng)說(shuō)明哪些頁(yè)已在主存,哪些頁(yè)尚未裝入主存。作業(yè)執(zhí)行 時(shí),指令中的邏輯地址指出了參加運(yùn)算的操作存放的頁(yè) 號(hào)和單元號(hào),硬 件的地址轉(zhuǎn)換機(jī)構(gòu)按頁(yè)號(hào)查頁(yè)表,若該頁(yè)對(duì)應(yīng)標(biāo)志為“1”,則表示該頁(yè)已在主存,這

2、時(shí)根據(jù)關(guān)系式“絕對(duì)地址 二塊號(hào)X塊長(zhǎng)+單元號(hào)”計(jì)算出欲 訪(fǎng)問(wèn)的主存單元地址。如果塊長(zhǎng)為 2的幕次,則可把塊號(hào)作為高地址部 分,把單元號(hào)作為低地址部分,兩者拼接而 成絕對(duì)地址。若訪(fǎng)問(wèn)的頁(yè)對(duì) 應(yīng)標(biāo)志為“0”,則表示該頁(yè)不在主存,這時(shí)硬件發(fā)“缺頁(yè)中斷”信號(hào), 有操作系統(tǒng)按該頁(yè)在磁盤(pán)上的位置,把該頁(yè)信息從磁盤(pán)讀出裝入主存后 再重新執(zhí)行這條指令。設(shè)計(jì)一個(gè)“地址轉(zhuǎn)換”程序來(lái)模擬硬件的地址轉(zhuǎn) 換工作。當(dāng)訪(fǎng)問(wèn)的頁(yè)在主存時(shí),則 形成絕對(duì)地址,但不去模擬指令的執(zhí) 行,而用輸出轉(zhuǎn)換后的地址來(lái)代替一條指令的執(zhí)行。當(dāng)訪(fǎng)問(wèn)的頁(yè)不在主 存時(shí),則輸出“*該頁(yè)頁(yè)號(hào)”,表示產(chǎn)生了一次缺頁(yè)中斷。2、用先進(jìn)先出頁(yè)面調(diào)度算法處理缺頁(yè)中

3、斷。FIFO頁(yè)面調(diào)度算法總是淘汰該作業(yè)中最先進(jìn)入主存的那一頁(yè),因此可以用一個(gè)數(shù)組來(lái)表示該作業(yè)已在主存的頁(yè)面。 假定作業(yè)被選中時(shí), 把開(kāi)始的m個(gè)頁(yè)面裝入主存,則數(shù)組的元素可定為 m個(gè)。實(shí)驗(yàn)報(bào)告內(nèi)容1、分頁(yè)式存儲(chǔ)管理和先進(jìn)先出頁(yè)面調(diào)度算法原理。分頁(yè)式存儲(chǔ)管理的基本思想是把內(nèi)存空間分成大小相等、位置固定的若干個(gè)小分區(qū),每個(gè)小分區(qū)稱(chēng)為一個(gè)存儲(chǔ)塊,簡(jiǎn)稱(chēng)塊,并依次編號(hào)為0, 1, 2, 3,,n塊,每個(gè)存儲(chǔ)塊的大小由不同的系統(tǒng)決定,一般為2的n次幕,如1KB, 2 KB, 4 KB等,一般不超過(guò)4 KB。而把用戶(hù)的 邏輯地址空間分成與存儲(chǔ)塊大小相等的若干頁(yè), 依次為0, 1,2,3,: m頁(yè)。當(dāng)作業(yè)提出存

4、儲(chǔ)分配請(qǐng)求時(shí),系統(tǒng)首先根據(jù)存儲(chǔ)塊大小把作業(yè)分 成若干頁(yè)。每一頁(yè)可存儲(chǔ)在內(nèi)存的任意一個(gè)空白塊內(nèi)。此時(shí),只要建立 起程序的邏輯頁(yè)和內(nèi)存的存儲(chǔ)塊之間的對(duì)應(yīng)關(guān)系,借助動(dòng)態(tài)地址重定位 技術(shù),原本連續(xù)的用戶(hù)作業(yè)在分散的不連續(xù)存儲(chǔ)塊中,就能夠正常投入 運(yùn)行。先進(jìn)先出頁(yè)面調(diào)度算法根據(jù)頁(yè)面進(jìn)入內(nèi)存的時(shí)間先后選擇淘汰頁(yè) 面,先進(jìn)入內(nèi)存的頁(yè)面先淘汰,后進(jìn)入內(nèi)存的后淘汰。本算法實(shí)現(xiàn)時(shí)需 要將頁(yè)面按進(jìn)入內(nèi)存的時(shí)間先后組成一個(gè)隊(duì)列, 每次調(diào)度隊(duì)首頁(yè)面予以 淘汰。程序流程圖1、地址轉(zhuǎn)換程序流程圖2、FIFO頁(yè)面置換算法程序流程圖程序及其注釋#include<cstdio>#include<cstring&

5、gt;#define SizeOfPage 100#define SizeOfBlock 128#define M 4主存中放 4個(gè)頁(yè)面struct info/頁(yè)表信息結(jié)構(gòu)體bool flag;/頁(yè)標(biāo)志,1表示該頁(yè)已在主存,0表示該頁(yè)不在主存long block;/ 塊號(hào)long disk;/在磁盤(pán)上的位置bool dirty;/更新標(biāo)志pagelistSizeOfPage;long po;/隊(duì)列標(biāo)記long PM;/假設(shè)內(nèi)存中最多允許M個(gè)頁(yè)面void init_ex1()memset(pagelist,0,sizeof(pagelist);/ 內(nèi)存空間初始化/*分頁(yè)式虛擬存儲(chǔ)系統(tǒng)初始化*/p

6、agelist0.flag=1;pagelist0.block=5;pagelist0.disk=011;pagelist1.flag=1;pagelist1.block=8;pagelist1.disk=012;pagelist2.flag=1;pagelist2.block=9;pagelist2.disk=013;pagelist3.flag=1;pagelist3.block=1;pagelist3.disk=021;void work_ex1()/模擬分頁(yè)式存儲(chǔ)管理中硬件的地址轉(zhuǎn)換和產(chǎn)生缺頁(yè)中斷過(guò)程bool stop=0;long p,q;頁(yè)號(hào),單元號(hào)char s128;/初始定義塊

7、長(zhǎng) doprintf("請(qǐng)輸入指令的頁(yè)號(hào)和單元號(hào):n");if(scanf("%ld%ld",&p,&q)!=2)scanf("%s",s);if(strcmp(s,"exit")=0)/如果輸入的為"exit"那么就退出,進(jìn)入重選頁(yè)面stop=1; elseif(pagelistp.flag)/如果該頁(yè)標(biāo)志flag為1,說(shuō)明該頁(yè)已在主存中printf("絕對(duì)地址=%ldn",pagelistp.block*SizeOfBlock+q);計(jì)算出絕對(duì)地址,絕又廣

8、&址=塊號(hào)x塊長(zhǎng)(默認(rèn)128) +單元號(hào) elseprintf("*%ldn",p);/如果該頁(yè)標(biāo)志flag為0,說(shuō)明該頁(yè)不在主存,則產(chǎn)生了一次缺頁(yè)中斷while(!stop);void init_ex2()/*以下部分為先進(jìn)先出(FIFO)頁(yè)面調(diào)度算法處理缺頁(yè)中斷的初始化,其中也包含了對(duì)于當(dāng)前的存儲(chǔ)器內(nèi)容的初始化*/po=0;P0=0;P1=1;P2=2;P3=3;對(duì)內(nèi)存中的4個(gè)頁(yè)面進(jìn)行初始化,并且使目前排在第一位的為0memset(pagelist,0,sizeof(pagelist); 內(nèi)存空間初始化pagelist0.flag=1;pagelist0.blo

9、ck=5;pagelist0.disk=011;pagelist1.flag=1;pagelist1.block=8;pagelist1.disk=012;pagelist2.flag=1;pagelist2.block=9;pagelist2.disk=013;pagelist3.flag=1;pagelist3.block=1;pagelist3.disk=021;void work_ex2()模才F FIFO算法的工作過(guò)程long p,q,i;char s100;bool stop=0;doprintf("請(qǐng)輸入指令的頁(yè)號(hào)、單元號(hào),以及是否為內(nèi)存指令 :n");if(

10、scanf("%ld%ld",&p,&q)!=2)scanf("%s",s);if(strcmp(s,"exit")=0) 如果輸入的為"exit"就退出,進(jìn)入重選界面stop=1; elsescanf("%s",s);if(pagelistp.flag)/如果該頁(yè)標(biāo)志flag為1,說(shuō)明該頁(yè)已在主存中printf("絕對(duì)地址=%ldn",pagelistp.block*SizeOfBlock+q);/計(jì)算絕對(duì)地址if(s0='Y'|s0=y)

11、內(nèi)存指令 pagelistp.dirty=1;/ 修改標(biāo)志為 1elseif(pagelistPpo.dirty)當(dāng)前的頁(yè)面被更新過(guò),需把更新后的內(nèi)容寫(xiě)回外存pagelistPpo.dirty=0; pagelistPpo.flag=0;將flag置0,表明當(dāng)前頁(yè)面已被置換出去 printf("out%ldn",Ppo);/顯示根據(jù)FIFO算法被置換出去的頁(yè)面 printf("in%ldn",p);/顯示根據(jù)FIFO算法被調(diào)入的頁(yè)面 pagelistp.block=pagelistPpo.block;/ 塊號(hào)相同 pagelistp.flag=1;/將當(dāng)

12、前頁(yè)面flag置1,表明已在主存中 Ppo=p;保存當(dāng)前頁(yè)面所在的位置po=(po+1)%M;while(!stop);printf("數(shù)組P的值為:n");for(i=0;i<M;i+)循環(huán)輸入當(dāng)前數(shù)組的數(shù)值,即當(dāng)前在內(nèi)存中的頁(yè)面printf("P%ld=%ldn",i,Pi);void select()選擇哪種方法進(jìn)行l(wèi)ong se;char s128;doprintf("請(qǐng)選擇題號(hào)(1/2):");if(scanf("%ld",&se)!=1)scanf("%s",&s);if(strcmp(s,"exit")=0) 如果輸入為 exit則退出整個(gè)程序return; elseif(se=1)如果se=1說(shuō)明選擇的模擬分頁(yè)式存儲(chǔ)管理中硬件的地址轉(zhuǎn)換和產(chǎn)生 缺頁(yè)中斷init_ex1();/ 初始化work_e

溫馨提示

  • 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)論