


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、經(jīng)濟(jì)學(xué)院華信學(xué)院操作系統(tǒng)課程設(shè)計(jì)報(bào)告(學(xué)院)系:華信學(xué)院專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)姓名:班級:09級3班學(xué)號:指導(dǎo)教師:孟永剛2012年6月22日操作系統(tǒng)課程設(shè)計(jì)報(bào)告宋攀學(xué)號4日期2012 年 6 月 11-21 號實(shí)驗(yàn)室機(jī)房2、3指導(dǎo)教師孟永剛設(shè)備編號設(shè)計(jì)題目虛擬存儲(chǔ)眾一、設(shè)計(jì)容模擬分頁式虛擬存儲(chǔ)管理中硬件的地址轉(zhuǎn)換和缺頁中斷,以及選擇頁面調(diào)度算法處理缺頁中斷。二、設(shè)計(jì)目的在計(jì)算機(jī)系統(tǒng)中,為了提高主存利用率,往往把輔助存儲(chǔ)器(如磁盤)作為主存儲(chǔ)器的擴(kuò)充,使 多道運(yùn)行的作業(yè)的全部邏輯地址空間總和可以超出主存的絕對地址空間。用這種辦法擴(kuò)充的主存儲(chǔ)器 稱為虛擬存儲(chǔ)器。通過本實(shí)習(xí)幫助同學(xué)們理解在分頁式存
2、儲(chǔ)管理中怎樣實(shí)現(xiàn)虛擬存儲(chǔ)器。三、設(shè)計(jì)過程.同組人員:秀德蛟1. 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)本設(shè)計(jì)所用的數(shù)據(jù)結(jié)構(gòu)包括:結(jié)構(gòu)體和數(shù)組,詳細(xì)描述如下:指令結(jié)構(gòu)體如下typedef structint page_num;頁號int unit_num; /單元號order;頁表結(jié)構(gòu)體如下typedef structint page_num;/頁號int flag;/標(biāo)志int memery_num; /主存儲(chǔ)塊號int m_flag;/修改標(biāo)志char location4 ;/在磁盤上的位置pageform;作業(yè)頁表數(shù)組如下#define C 7pageform aC;主存頁表數(shù)組如下define Cl 4pagef
3、orm pCl;2. 算法設(shè)計(jì)1)該源程序分為以下幾個(gè)模塊:(1)主存初始化模塊(2)頁表初始化模塊(3)打印初始化后的頁表信息模塊(4)地址轉(zhuǎn)換和產(chǎn)生缺頁中斷模塊(5)先進(jìn)先出(FIFO)頁面調(diào)度算法處理缺頁中斷模塊2)對各模塊進(jìn)行詳細(xì)說明:(1)主存初始化模塊函數(shù):memunit_initO入口參數(shù):無出口參數(shù):無功能描述:調(diào)入4個(gè)頁面對4個(gè)空閑主存進(jìn)行頁面初始化,調(diào)入頁面包括a0,al,a2La3;空閑主存包括 p0,譏 1, p2 ,p3。(2) 頁表初始化模塊函數(shù):page-init()入口參數(shù):無出口參數(shù):無功能描述:對作業(yè)頁表表項(xiàng)初始化,包括對頁面a0,alta2,a3t a4
4、,a5 ,a6的 初始化。流程圖如下:圖2圖3打印頁表信息模塊(3) 打印頁表信息函數(shù):pageform print()入口參數(shù):無出口參數(shù):無功能描述:打印初始牝后的作業(yè)頁表表項(xiàng),對作業(yè)頁表表項(xiàng)初始化,包括對頁面 a0,al ,a2,a3 , a4, a5 ,a6的初始化;然后打印 a0 ,al ,a2 ,a3, a4 ,a5 ,a6各頁表項(xiàng)。流程圖如圖3所示:(4) 地址轉(zhuǎn)換和產(chǎn)生缺頁中斷模塊函數(shù):order 1 ()入口參數(shù):無出口參數(shù):無功能描述:根據(jù)取出的指令的頁號查找頁表,如果該頁的標(biāo)志位=1就輸出該頁的絕對地址, 否則發(fā)生缺頁中斷打印*頁號。流程圖如圖4所示:圖4地址轉(zhuǎn)換和產(chǎn)生缺
5、頁中斷模塊(5) 先進(jìn)先出(FIFO)頁面調(diào)度算法處理缺頁中斷模塊函數(shù):order2 ()入口參數(shù):無出口函數(shù):無功能描述:根據(jù)取出的指令的頁號查找頁表,在該頁的標(biāo)志位=1的前提下,如果是存命令, 就置該頁的修改標(biāo)志位=1并且計(jì)算和輸出該頁的絕對地址,如果不是存命令,就只計(jì)算和輸 出該頁的絕對地址;在該頁的標(biāo)志位=0的前提下,則模擬FIFO算法,k初始化為0,則執(zhí)行 把pk的各個(gè)表項(xiàng)分別賦值給j的各個(gè)表項(xiàng),判斷j頁的修改標(biāo)志是否為1 ,如果為1就輸 出 OUT j 并且輸出 IN cmd. page num,否則只輸出 IN cmd. page num,執(zhí)行把 cmd. page num 裁值
6、給pkJ. page num,再執(zhí)行k: = (k+l)mod m,然后修改所有由于輸入命令所引起的有關(guān) 的頁面各種表項(xiàng),最后輸出所有作業(yè)頁面的最新表項(xiàng)。四、程序運(yùn)行結(jié)果源程序代碼:虛擬存儲(chǔ)器cpp1 執(zhí)行程序后初始化的窗口截屏如圖6:|3輸入的頁號為0,輸入的單元號為70,輸入有后繼指令,結(jié)果截屛如圖8所示:請輸入題號1/2: 當(dāng)前內(nèi)存嗎翌口下二02345標(biāo)芯1111000主存塊號修改標(biāo)志磁盤位置12 3 12 3 11112 2 2 28 0 0 0 8 0 1貢號:饋輸入新指令的單元號:70是否有后繼指令(0/1):絕對地址為;I翕靄嘛賈號:11圖8轍入已在主存中的作業(yè)4 輸入的頁號為4
7、,輸入的單元號為53,轍入無后繼指令,結(jié)果截屏如圖9所示:*C:DOCUIEBTS AMDSETTII&SADIIinSTRATOR桌面409417080324宋拿Debug. -nix貝萬012345標(biāo)志111100修改標(biāo)志磁盤位置12 3 12 3 11112 2 2 20 0 0 0 0 0 1請輸入新扌旨令的單元號70是否有后繼指令0/1 :絕對地址為:,710 感矯黔載號:4請輸入新指令的單元號;* 4Press any key to continue圖9輸入未在主存中的作業(yè)5. 輸入2后的初始窗口截'屏如圖10所示:請輸入題號當(dāng)曹內(nèi)存嗟壑口下:a123456標(biāo)芯11
8、11000主存塊號5891修改標(biāo)志磁盤位置2 3 11120 0 0±1圖10輸入題目2的初始化窗口5.輸入的頁號為0,輸入的單元號為70,輸入存指令,輸入無后繼指令,結(jié)果截屏如圖11所示:c< 9:DOCU1EHTS)SETTIRGSADIINISTRATOR桌面409417080324宋奉Debu. 5|xl請輸人題2主存塊號5號:頁1110 0 0指令的指入入i12345丘請請0請是y輸否號 元 單>: 的/n令3號 0 :頁 71翕 :指令 為的指 址 地入入 Ml 斷請障?0修改標(biāo)志磁盤也置011012013021022023121圖11輸入新指令I(lǐng)N 4頁號標(biāo)
9、志主存塊號001182193114155060直否有后繼指令0/1 :£鶉入;貓頁號:7.輸入的頁號為4,輸入的單元號為53,輸入存指令,輸入有后繼指令,結(jié)果截屛如圖12所示:是否存扌旨令崑否有后繼指令0/1 : 絕對地址為 710貢號;I靱i4請輸入祈指令的單元號:53 是杏存指修改標(biāo)志磁盤位置011012013021022023121圖12轍入新指令8.輸入的頁號=5,輸入的單元號=23,輸入非存指令,輸入無后繼指令,結(jié)果截屏如圖13所示G ' *C:DOCinE»TS AND SETTIIGSADIIII STRATOR面14叨417080324宋拳'
10、Debug. loo 號貢0指令的指入入6請請5請?jiān)获廨敺?2 3 12 3 1 1112 2 2 20 0 0 0 0 0 1是否有后繼指令5/1:12 3 12 3 11112 2 2 200000010IN5頁號標(biāo)志主存塊號0010219311415561 08Pressanp key tocontinue圖13輸入新指令五、設(shè)計(jì)總結(jié)此次試驗(yàn),全部程序及全部模塊均參與研究,現(xiàn)在均已熟悉,對各個(gè)模塊都詳細(xì)的說明了它們的功 能等等.兩周的課程設(shè)計(jì)結(jié)束了,在這次的課程設(shè)計(jì)中不僅檢驗(yàn)了我所學(xué)習(xí)的知識(shí),并且更正了我的 一個(gè)誤區(qū),讓我對所學(xué)的知識(shí)有了更深刻的認(rèn)識(shí)。六、指導(dǎo)教師評語及成績評語:成績:源
11、代碼R i nc1ude< iostream. h>Rinclude<string. h>Rdefine C 7tfdefine Cl 4 typedef structint page num;/頁號int flag; /標(biāo)志int memery num;/主存儲(chǔ)塊號int m_flag;/修改標(biāo)志char location4: /在磁盤上的位置 pageform; pageform aC: pageform pCl;int k-0;int i二0;int select; pageform j; int n;/是否有后繼指令 int x;typedef structin
12、t p3ge_num;/頁號int unit_num;/單元號order;void memunit init ()p0page num=0;p0. flag=l;p0memery num二5;p0 m flag=0;strcpy(p0. location,"Oil");pl page num=l;pl flag二0;plmemery num二8;pl. mflag=0;strcpy(pll. location,"012");p2 page_num:z2;p.flag=l;p2 memery num:z9;a2. m_flag=0;strcpy(p2L l
13、ocation,"013"); p3page num=3; p3 flag=l; p3memery num-1: p3 mflag=O; strcpy(p3 location."021");Ivoid page init()a0page num=0; a0 flag=l; a0. memery num二5; a0. m_flag=0; strcpy(a0. location,n011); al page. num=l; al flag=l;al memery nunp8; al. m_fl3g二0; strcpy(al location,"01
14、2"); a2 page n 11滬2; a2. flag=l;a2memery num二9; a2. m_flag=0; strcpy(a2 location."013"); a3. page num-3; a3 flag=l;a3.num二 1:a3. m_flag=0; strcpy (a3j. location, ,021rf); a4page num=4: a4 flag-0;a4 mflag=0; strcpy(a4. location,M022w); a5page num=5;a5 flag-0; a5. m_flag二0; strcpy(a5 lo
15、cation."023"); a6. page num=6;a6. flag=0; a6. m_flag=0;strcpy(a6 location,"121");void recycleOcout«n頁號標(biāo)志主存塊號修改標(biāo)志 磁盤位置"endl;for(int i=0;i<C;i+)if(ail. flag=l)H«ai. flag«nmemery num«"n«ai loc3tion«endl;cout«a i . page num« *"
16、;«3i m_felse,«M<5i 叭 fl3g<<"cout«ai page num«"n«aifH«ai loc3tion«endl;void pageform print()page init();cout«°當(dāng)前存頁表如下:M«endl; recycle ();void order1 ()page init():order cmd;cout«n請輸入新的指令:"«endl; cout«"請輸入新指令
17、的頁號:,«endl; cin>>cmd.page num;if(cmd.page num>6 |cmd.page num<0) docout«M請重新輸入正確頁號(0-6) : "«endl; cin>>cmd.page num:while(cmd.page num>6 !cmd.page num<0):cout<<"請輸入新指令的單元號:"<<end;cin>>cmd.unit num;cout«M是否有后繼指令(0/l):H«
18、endl;cin>>n;if (a cmd .page num f log 二=1)x=128*acmd.page num.memery num+cmd.unit num; cout"絕對地址為:*«x«endl;cout«,r* n«cmd.page num«endl;void order2()memunit_init();char r;order cmd;cout«n請輸入新的指令:"«endl;cout«"請輸入新指令的頁號:"«endl; cin
19、>>cmd page_num;if (cmd. page num>6 |cmd page num<0)docout«n請重新輸入正確頁號(0-6) : "«endl; cin>>cmd.page num:)while(cmd.page num>6: !cmd.page num<0): _cout«"請輸入新指令的單元號:"; cin>>cmd.unit num;cout«n是否存指令(y/n): "«endl;cin>>r;cout«w是否有后繼指令(0/l):,f«endl;cin>>n;if (a cmd .page numf Ing 二=1)x-128*acmd.page nummemery num+cmd.unit num; if(r='yr)acmd.page numm flag二 1;elsecout«"絕對地址為:M«x«endl;elsej flag二pk flag;j. m_flag=pk. m flag;j. memery num二pk
溫馨提示
- 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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲與旅行社合作協(xié)議范例二零二五年
- 電器設(shè)備采購合同
- 樂理考試的音符組合與樂句構(gòu)建試題及答案
- 醫(yī)療健康產(chǎn)業(yè)融資策略從初創(chuàng)到IPO的風(fēng)險(xiǎn)掌控
- 幼兒音樂教育中的樂理教學(xué)方法試題及答案
- 大學(xué)化學(xué)考試化學(xué)通信基礎(chǔ)試題及答案
- 農(nóng)業(yè)電商實(shí)踐與案例考題及答案
- 居住體驗(yàn)與家具設(shè)計(jì)之間的關(guān)系探討試題及答案
- 安全工程師在施工現(xiàn)場的職能與作用試題及答案
- 區(qū)域農(nóng)業(yè)電商發(fā)展現(xiàn)狀與前景試題及答案
- 陰道炎考試題及答案
- 2024年全國藥物臨床試驗(yàn)機(jī)構(gòu)備案情況報(bào)告
- 2025年高考作文素材積累之《黑鏡》:科技狂歡與文明困境
- DB3307T 128-2023 共富工坊建設(shè)與星級評價(jià)規(guī)范
- 口腔科醫(yī)療垃圾與生活垃圾分類
- 五年級數(shù)學(xué)下冊每日計(jì)算小紙條
- 腦心健康管理師培訓(xùn)匯報(bào)
- 2024年學(xué)校安全知識(shí)競賽題庫及答案
- 小班健康教案及教學(xué)反思《疊衣服》
- 家裝設(shè)計(jì)師個(gè)人簡介范文
- DL∕T 5210.6-2019 電力建設(shè)施工質(zhì)量驗(yàn)收規(guī)程 第6部分:調(diào)整試驗(yàn)
評論
0/150
提交評論