操作系統(tǒng)分頁式存儲管理課程設計_第1頁
操作系統(tǒng)分頁式存儲管理課程設計_第2頁
操作系統(tǒng)分頁式存儲管理課程設計_第3頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、石家莊經(jīng)濟學院華信學院操作系統(tǒng)課程設計報告(學院)系:華信學院專 業(yè):計算機科學與技術(shù)姓 名:班級:09級3班學號:40941708032指導教師:孟永剛2012年6月22日操作系統(tǒng)課程設計報告姓名宋攀學號4日期2012 年 6 月 11-21 號實驗室機房2、3指導教師孟永剛設備編號設計題目虛擬存儲器一、設計內(nèi)容模擬分頁式虛擬存儲管理中硬件的地址轉(zhuǎn)換和缺頁中斷,以與選擇頁面調(diào)度算法處理缺頁中斷。二、設計目的在計算機系統(tǒng)中,為了提高主存利用率,往往把輔助存儲器(如磁盤)作為主 存儲器的擴充,使多道運行的作業(yè)的全部邏輯地址空間總和可以超出主存的絕對 地址空間。用這種辦法擴充的主存儲器稱為虛擬存儲

2、器。通過本實習幫助同學們 理解在分頁式存儲管理中怎樣實現(xiàn)虛擬存儲器。三、設計過程、同組人員:陳秀張德蛟1. 數(shù)據(jù)結(jié)構(gòu)設計本設計所用的數(shù)據(jù)結(jié)構(gòu)包括:結(jié)構(gòu)體和數(shù)組,詳細描述如下: 指令結(jié)構(gòu)體如下typedef structint page_ nu m;頁號int unit_nu m;單兀號order;頁表結(jié)構(gòu)體如下typedef structint page_ nu m;頁號int flag;/ 標志int memery_num;主存儲塊號int m_flag;修改標志char locatio n 4;/在磁盤上的位置pageform;作業(yè)頁表數(shù)組如下#defi ne C 7 pageform a

3、C;主存頁表數(shù)組如下#defi ne C14pageform pC1;2. 算法設計1)該源程序分為以下幾個模塊:(1 )主存初始化模塊(2)頁表初始化模塊(3)打印初始化后的頁表信息模塊(4)地址轉(zhuǎn)換和產(chǎn)生缺頁中斷模塊(5)先進先出(FIFO )頁面調(diào)度算法處理缺頁中斷模塊2)對各模塊進行詳細說明:(1)主存初始化模塊函數(shù):memunit_init()入口參數(shù):無出口參數(shù):無功能描述:調(diào)入4個頁面對4個空閑主存進行頁面初始化,調(diào)入頁面包括a0,a1,a2,a3;空閑主存包括 p0,p1,p2,p3。圖1主存初始化模塊(2) 頁表初始化模塊函數(shù):pagenit()入口參數(shù):無出口參數(shù):無功能描

4、述:對作業(yè)頁表表項初始化,包括對頁面a0,a1,a2,a3,a4,a5,a6的初始化。流程圖如下:嚴*1開始初始化作業(yè)各頁表項圖2(3) 打印頁表信息函數(shù):pageform_print()入口參數(shù):無出口參數(shù):無功能描述:打印初始化后的作業(yè)頁表表項,對作業(yè)頁表表項初始化,包括對頁面 a0,a1,a2,a31 ,a4,a5,a6的初始化;然后打印 開始圖4地址轉(zhuǎn)換和產(chǎn)生缺頁中斷模塊(5)先進先出(FIFO )頁面調(diào)度算法處理缺頁中斷模塊函數(shù):order2()入口參數(shù):無出口函數(shù):無功能描述:根據(jù)取出的指令的頁號查找頁表,在該頁的標志位=1的前提下,如果是存命令,就置該頁的修改標志位=1并且計算和

5、輸出該頁的絕對地址,如果不是存命令,就只計算和輸出該頁的絕對地址;在該頁的標志位=0的前提下,則模擬FIFO算法,k 初始化為0,則執(zhí)行把pk的各個表項分別賦值給j的各個表項,判斷j頁的修改標志是否為1 ,如果為1就輸出 OUT j并且輸出IN cmd.page_num ,否則只輸出INcmd.page_num ,執(zhí)行把 cmd.page_num 賦值給 pk.page_num ,再執(zhí)行k:=(k+1)mod m,然后修改所有由于輸入命令所引起的有關的頁面各種表項,最后輸出所有作業(yè)頁面的最新表項値輸入題諭內(nèi)存鬻下主存塊號11110 0 0修改標志磁盤位置01191231302102202312

6、1-W- 3 iSi i£ 一圖7輸入1后的窗口3. 輸入的頁號為0,輸入的單元號為70,輸入有后繼指令,結(jié)果截屏如圖 8所示:CiXDOCUMEHTS AKD SETTIHGSADIIHISTRATORWf409417D8Q3245feBebu嘗前內(nèi)存頁星口下: 而'l標心11主存塊號59修改標志00Q0000磁盤便置0116120130210220231214£1000請輸入新指令的單元號:70是否有后繼指令少61絕對地址為r 710圖8輸入已在主存中的作業(yè) /4. 輸入的頁號為4,輸入的單元號為53,輸入無后繼指令,結(jié)果截屏如圖9所示:W 主存塊號修改標志0S

7、磷蠱位置01101261362162 3623121t-v CzXDOCmEMTS AID SETTIHGSXADIiaiSTRATORX面MDMlTDSDdM宋皐WeIhi11180郵遵黑鬍賈號*0請輸入新指令的單元號:70是否有后繼指令0/1 =絕對地址為:710鹼矯霸蔬號:4請輸入新捐令的單元號I是否有后繼指令0/10Pre5 any key to contdnie圖9輸入未在主存中的作業(yè)5. 輸入2后的初始窗口截屏如圖10所示:0002341 1 Q0Q210128 S肛29 0Q13主存塊號0 1二羽h ClWCUlEITS Aim SETTIliGSADIlJiLSTRATOR 桌

8、畫14仙411UUM 21 宋畢 IMbm.0藹內(nèi)存黔下號頁0?曙 入必 輸輸 6WW燼改標志0磁盤位置011圖10輸入題目2的初始化窗口6. 輸入的頁號為0,輸入的單元號為70,輸入存指令,輸入無后繼指令,結(jié)果 截屏如圖11所示:修改標志磁盤位置主存塊號擲存踏1111070號元單>: 的zn 令心 舀令 S 入存 輸否12 3 4呂石請請請是y是1絕請請尋k0 0指令入入171盤 為的?8 址地入入盂 *C:D0CUIEHTS)SETTIHGSADII¥ISTRATOK桌面40941708032*1 宋拳詒輸人題v<lz2> =圖11輸入新指令7. 輸入的頁號為4

9、,輸入的單元號為 53,輸入存指令,輸入有后繼指令,結(jié) 果截屏如圖12所示:心"C:DOCUIENTS AJO) SET TING SAI>IIliISTRATOR< 面 14D 旳 lT(J80d 制末春 M>Ebu是否有后繼扌旨令WZD21絕對地址為 ?ia4請輸入新指令的單元號汚丁是杏存扌旨令1IH 4貢號標志主存塊號S01121?3111弓0&電否有后繼指令C0/1>:傷改標志磁盤位置12 3 12 31112 2 20 0 0 0 0 0121圖12輸入新指令8. 輸入的頁號=5,輸入的單元號=23,輸入非存指令,輸入無后繼指令,結(jié)果截屏如圖

10、13所示:cv *C:)OCUIEirS AND SEIT1BGSSTRATO面V10財 170803創(chuàng)宋拿ID訪毗0 01an11 80012219B01331 1Q即1415102250092300121請*5請辛俞入新的指今: 備入嶄指令馬頁號;俞入新指令的單元號吃丁寫存指令頭是否有后繼指令®60IN5瓦號標志主存塊號傻改標志磁盤位置601Oil00012219G01331 160214151Q2251 8e0230&121Pfcsskwy to comtinue圖13輸入新指令五、設計總結(jié)此次試驗,全部程序與全部模塊均參與研究,現(xiàn)在均已熟悉,對各個模塊都詳 細的說明了

11、它們的功能等等,兩周的課程設計結(jié)束了,在這次的課程設計中不僅檢 驗了我所學習的知識,并且更正了我的一個誤區(qū),讓我對所學的知識有了更深刻 的認識。六、指導教師評語與成績評語:成績:源代碼#in clude<iostream.h>#in cludevstri ng.h>#defi ne C 7#defi ne C1:ypedef structint page_ nu m;頁號int flag;/ 標志int memery_num;/主存儲塊號int m_flag;修改標志char locati on 4;/在磁盤上的位置pageform;pageform aC;pageform

12、pC1;nt k=0;nt i=0;nt select;pageform j;nt n;/是否有后繼指令nt x;:ypedef struct int page_ nu m; 頁號int unit_nu m; 單元號order;void mem un it_i nit()p0.page_ num=0;p0.flag=1;p0.memery_ num=5;p0.m_flag=0; strcpy(p0ocatio n,"011"); p1.page_ num=1;p1.flag=0;p1.memery_ num=8;p1.m_flag=0;strcpy(p1.locatio n

13、,"012"); p2.page_ num=2;p2.flag=1;p2.memery_ num=9;a2.m_flag=0;strcpy(p2.locatio n,"013");p3.page_ num=3;p3.flag=1; p3.memery_ num=1; p3.m_flag=0;strcpy(p3ocatio n,"021");void page_i nit()a0.page_ num=0;a0.flag=1;a0.memery_ num=5; a0.m_flag=0;strcpy(a0.locatio n,"0

14、11");a1.page_ num=1;a1.flag=1;a1.memery_ num=8; a1.m_flag=0;strcpy(a1.locatio n,"012");a2.page_ num=2;a2.flag=1;a2.memery_ num=9; a2.m_flag=0;strcpy(a2.locatio n,"013");a3.page_ num=3; a3.flag=1; a3.memery_ num=1; a3.m_flag=0;strcpy(a3ocatio n,"021");a4.page_ num=4

15、; a4.flag=0;a4.m_flag=0; strcpy(a4.locatio n,"022");a5.page_ num=5; a5.flag=0; a5.m_flag=0;strcpy(a 5 .locatio n,"023");a6.page_ num=6; a6.flag=0;a6 .m_flag=0;strcpy(a 6 .locatio n,"121");void recycle()"<<"修改標志Cout«" 頁號"<<"標志&qu

16、ot;<<"主存塊號'<<"磁盤位置"<<endl;for(i nt i=O;i<C;i+)if(ai.flag=1)"vvai.flagv<""vvai.m_flagv<"cout<<ai.page_ num<<"'<<ai.memery_ num<<" '<<ai.locati on«en dl;elsecout<<ai.page_ num&l

17、t;<""vvai.m_flagv<""vvai.flagv<""<<""<<ai.locati on«en dl;pageform_pri nt() page_i ni t();cout«"當前內(nèi)存頁表如下:"<<endl;recycle();order1() page_i nit();order cmd;cout«"請輸入新的指令:"<<e ndl;cout«&quo

18、t;請輸入新指令的頁號:"<<e ndl;cin> >cmd.page_ num;if(cmd.page_ num >6|cmd.page_ num<0) docoutvv"請重新輸入正確頁號(0-6):"<<endl;cin> >cmd.page_ num;while(cmd.page_ num >6|cmd.page_ num <0);cout«"請輸入新指令的單元號:"<<e ndl;cin> >cmd.u nit_num;coutv

19、v" 是否有后繼指令(0/1):"<<endl;cin»n;if(acmd.page_ nu m.flag=1)x=128*acmd.page_ nu m.memery_ nu m+cmd.u nit_num; coutvv" 絕對地址為:"vvxvve ndl;elsecout«"* "<<cmd.page_ num <<e ndl;void order2()mem un it_i nit();char r;order cmd;cout«"請輸入新的指令:&

20、quot;<<e ndl;coutvv"請輸入新指令的頁號:"<<e ndl;cin> >cmd.page_ num;if(cmd.page_ num >6|cmd.page_ num<0)docoutvv"請重新輸入正確頁號(0-6):"<<endl; cin> >cmd.page_ num;while(cmd.page_ num >6|cmd.page_ num <0);coutvv"請輸入新指令的單元號:"cin> >cmd.u ni

21、t_num;cout«"是否存指令(y/n):"«endl;cin»r;cout«" 是否有后繼指令(0/1):"<<endl;cin»n;if(acmd.page_ nu m.flag=1)x=128*acmd.page_ nu m.memery_ nu m+cmd.u nit_num; if(r='y')acmd.page_ nu m.m_flag=1;elsecout«" 絕對地址為:"vvxvve ndl;elsej.flag=pk.flag;j.m_flag=pk.m_flag;j.memery_ num=pk.memery_ num;j.page_ num

溫馨提示

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

最新文檔

評論

0/150

提交評論