版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、操作系統(tǒng)課程設(shè)計(jì)報(bào)告題目頁面置換算法專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)小組成員:目錄1 .設(shè)計(jì)目的22 .課設(shè)要求23 .系統(tǒng)分析34 .系統(tǒng)設(shè)計(jì)34.1 問題分析34.2 程序整體框圖54.3 FIFO算法54.4 LRU算法64.5 OPT算法75 .功能與測(cè)試85.1 開始界面85.2 FIFO算法95.3 LRU算法1.Q.5.4 OPT算法1.Q.6 .結(jié)論11.7 .附錄12.1 .設(shè)計(jì)目的1、存儲(chǔ)治理的主要功能之一是合理地分配空間.請(qǐng)求頁式治理是一種常用的虛擬存儲(chǔ)治理技術(shù).本次設(shè)計(jì)的目的是通過請(qǐng)求頁式存儲(chǔ)治理中頁面置換算法模擬設(shè)計(jì),了解虛擬存儲(chǔ)技術(shù)的特點(diǎn),掌握請(qǐng)求頁式治理的頁面置換算法.2、提
2、升自己的程序設(shè)計(jì)水平、提升算法設(shè)計(jì)質(zhì)量與程序設(shè)計(jì)素質(zhì);2 .課設(shè)要求設(shè)計(jì)一個(gè)請(qǐng)求頁式存儲(chǔ)治理方案.并編寫模擬程序?qū)崿F(xiàn)之.要求包含:1 .過隨機(jī)數(shù)產(chǎn)生一個(gè)指令序列,共320條指令.其地址按下述原那么生成:50%的指令是順序執(zhí)行的;25%的指令是均勻分布在前地址局部;25%的指令是均勻分布在后地址局部;具體的實(shí)施方法是:在0,319的指令地址之間隨機(jī)選區(qū)一起點(diǎn)M;順序執(zhí)行一條指令,即執(zhí)行地址為M+1的指令;在前地址0,M+1中隨機(jī)選取一條指令并執(zhí)行,該指令的地址為M'順序執(zhí)行一條指令,其地址為M'+1;在后地址M'+2,319中隨機(jī)選取一條指令并執(zhí)行;重復(fù)AE,直到執(zhí)行32
3、0次指令.2 .指令序列變換成頁地址流設(shè):1頁面大小為1K;用戶內(nèi)存容量為4頁到32頁;用戶虛存容量為32K.在用戶虛存中,按每K存放10條指令排列虛存地址,即320條指令在虛存中的存放方式為:第0條一第9條指令為第0頁對(duì)應(yīng)虛存地址為0,9;第10條一第19條指令為第1頁對(duì)應(yīng)虛存地址為10,19;000000000000000000000第310條一第319條指令為第31頁對(duì)應(yīng)虛存地址為310,319;按以上方式,用戶指令可組成32頁.3 .計(jì)算并輸出下述各種算法在不同內(nèi)存容量下的命中率.FIFO先進(jìn)先出的算法LRU最近最少使用算法OPT最正確淘汰算法先淘汰最不常用的頁地址3 .系統(tǒng)分析在多道
4、程序環(huán)境下,要使程序運(yùn)行,必須先為之創(chuàng)立進(jìn)程.而創(chuàng)立進(jìn)程的第一步是將程序和數(shù)據(jù)裝入內(nèi)存.存儲(chǔ)器實(shí)現(xiàn)的功能主要是內(nèi)存分配等功能,本模擬系統(tǒng)所要實(shí)現(xiàn)的就是將進(jìn)程的程序和數(shù)據(jù)裝入內(nèi)存物理塊.具體需要實(shí)現(xiàn)的功能如下:1、讀入進(jìn)程大小,進(jìn)行分頁,確定每一頁的指令地址范圍;2、讀入一個(gè)指令,確定其所在頁面,讀入內(nèi)存物理塊中.物理塊空閑直接讀入,物理塊已滿,指向下步操作.3、物理塊已滿,將要淘汰原來首先進(jìn)入到內(nèi)存中的頁面,即換出;然后將現(xiàn)在的指令地址頁面讀入物理塊中,即換入.4 .系統(tǒng)設(shè)計(jì)4.1 問題分析分頁存儲(chǔ)治理,是將一個(gè)進(jìn)程的邏輯地址空間分成假設(shè)干個(gè)大小相等的片,稱為頁面或頁,并為各頁加以編號(hào).相應(yīng)地
5、,也把內(nèi)存空間分成與頁面相同大小的假設(shè)干個(gè)存儲(chǔ)塊,稱為物理塊,在為進(jìn)程分配內(nèi)存時(shí),以塊為單位將進(jìn)程中的假設(shè)干個(gè)頁分別裝入到多個(gè)可以不相鄰接的物理塊中系統(tǒng)為每個(gè)進(jìn)程建立一個(gè)頁表,頁表給出邏輯頁號(hào)和具體內(nèi)存塊號(hào)相應(yīng)的關(guān)系.一個(gè)頁表中包含假設(shè)干個(gè)表目,表目的自然序號(hào)對(duì)應(yīng)于用戶程序中的頁號(hào),表目中的塊號(hào)是該頁對(duì)應(yīng)的物理塊號(hào).請(qǐng)求頁式存儲(chǔ)治理方式是一種實(shí)現(xiàn)虛擬存儲(chǔ)器的方式,是指在進(jìn)程開始運(yùn)行之前,不是裝入全部頁面,而是裝入一個(gè)或零個(gè)頁面,之后根據(jù)進(jìn)程運(yùn)行的需要,動(dòng)態(tài)裝入其它頁面.當(dāng)內(nèi)存空間已滿,而又需要裝入新的頁面時(shí),那么根據(jù)某種算法淘汰某個(gè)頁面,以便裝入新的頁面.請(qǐng)求頁式存儲(chǔ)治理主要需要解決以下問題:
6、系統(tǒng)如何獲知進(jìn)程當(dāng)前所需頁面不在主存;當(dāng)發(fā)現(xiàn)缺頁時(shí),如何把所缺頁面調(diào)入主存;當(dāng)主存中沒有空閑的頁框時(shí),為了要接受一個(gè)新頁,需要把老的一頁淘汰出去,根據(jù)什么策略選擇欲淘汰的頁面.4.2 程序整體框圖圖4-1程序整體框圖由于該算法規(guī)模較小,可以將該系統(tǒng)劃分為三塊,分別是:FIFO算法模塊、LRU算法模塊、OPT算法模塊.4.3 FIFO算法基于程序總是按線形順序來訪問物理空間這一假設(shè),總是淘汰最先調(diào)入主存的頁面,即淘汰在主存中駐留時(shí)間最長的頁面.4.4 LRU算法LRU置換算法,是根據(jù)頁面調(diào)入內(nèi)存后的使用情況進(jìn)行決策的.由于無法預(yù)測(cè)各頁面將來的使用情況,只能利用“最近的過去作為“最近的將來的近似,
7、因此,LRU置換算法是選擇最近最久未使用的頁面予以淘汰.該算法賦予每個(gè)頁面一個(gè)訪問字段,用來記錄一個(gè)頁面自上次被訪問以來所經(jīng)歷的次數(shù)count,當(dāng)須淘汰一個(gè)頁面時(shí),選擇現(xiàn)有頁面中其count值最大的,即最近最久未使用的頁面予以淘汰.count=04.5 OPT算法或距現(xiàn)在最當(dāng)要調(diào)入一頁而必須淘汰舊頁時(shí),應(yīng)該淘汰以后不再訪問的貢,長時(shí)間后要訪問的頁.它所產(chǎn)生的缺頁數(shù)最少.這只是一種理想的情況在面中查找圖4-4OPT算法程序流程圖5 .功能與測(cè)試5,1界面用戶進(jìn)入系統(tǒng)之后,會(huì)有一個(gè)選擇算法的界面,如下列圖所示:選擇內(nèi)存容量,然后點(diǎn)擊“隨機(jī)生成頁地址流按鈕,生成頁地址流與頁面走向,如下列圖所示:圖5
8、-1選擇界面5.1 FIFO算法用戶點(diǎn)擊“FIFO算法按鈕,如下列圖所示:5.2 LRU算法用戶點(diǎn)擊“LRU算法按鈕,如下列圖所示:5.4OPT算法用戶點(diǎn)擊“OPT算法按鈕,如下列圖所示:6 .結(jié)論對(duì)于頁面算法,我們平時(shí)上課時(shí),只是知道了頁面置換算法是怎么做的,并沒有想如何去實(shí)現(xiàn)這些算法.在真正要做的時(shí)候才發(fā)現(xiàn)了問題.在這次課程設(shè)計(jì)的過程中,由于之前大家對(duì)可視化程序設(shè)計(jì)不怎么熟悉,在寫代碼的時(shí)候有了許多的麻煩.最后,在小組成員耐心看了一些C#的書,并且多方實(shí)踐,終于完成了這次課程設(shè)計(jì).通過該設(shè)計(jì),我們學(xué)會(huì)了存儲(chǔ)器的治理內(nèi)容,利用C#語言實(shí)現(xiàn)進(jìn)程裝入內(nèi)存的的過程,同時(shí)也對(duì)存儲(chǔ)器治理的多種裝入方式
9、及內(nèi)存分區(qū)有了更深的了解,特別是頁面置換算法的應(yīng)用.但也應(yīng)看到對(duì)于實(shí)際的存儲(chǔ)器應(yīng)用還有很多地方不能實(shí)現(xiàn)真實(shí),在今后的學(xué)習(xí)中應(yīng)對(duì)所學(xué)知識(shí)做更深入的挖掘,對(duì)于各種算法應(yīng)用更好的利用.7 .附錄程序源代碼usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespacePageReplacepublicpartial
10、classForm1:Formpublicintpage=newint320;publicstructStruPagepublicintpageNum;publicintflag;publicintcount;publicintdistance;)publicStruPagestruPage=newStruPage32;/外存上的頁面publicForm1()InitializeComponent();comboBox1.DropDownStyle=ComboBoxStyle.DropDownList;for(inti=4;i<=32;i+)comboBox1.Items.Add(i);
11、)privatevoidbtnRand_Click(objectsender,EventArgse)intaddress=newint320;this.rtboxAddress.Text=""this.rtboxPage.Text=""Randomram=newRandom();for(inti=0;i<317;)/生成頁地址流intm=ram.Next(319);addressi+=m+1;intm_=ram.Next(0,m+1);addressi+=m_+1;addressi+=ram.Next(m_+2,319);for(intj=0;j&
12、lt;320;j+)/將頁地址流轉(zhuǎn)換為頁面走向并輸出pagej=addressj/10;this.rtboxAddress.Text+=addressj.ToString()+"t"this.rtboxPage.Text+=pagej.ToString()+"t"this.btnFCFS.Visible=true;this.btnLRU.Visible=true;this.btnOPT.Visible=true;privatevoidbtnFCFS_Click(objectsender,EventArgse)(/this.btnFCFS.BackColo
13、r=Color.Yellow;for(inti=0;i<32;i+)/初始化結(jié)構(gòu)體struPagei.pageNum=i;struPagei.flag=0;struPagei.count=0;struPagei.distance=320;intpageReplaceNum=0;/替換的頁面數(shù)doubleshootRate;/命中率intmemorySize=Int32.Parse(comboBox1.Text);/內(nèi)存的容量StringoutputString=""/每次替換后的內(nèi)存狀態(tài)intpageLoadedNum=0;/已裝入內(nèi)存的頁面數(shù)intarray=new
14、intmemorySize;/暫存已裝入內(nèi)存的頁面號(hào)for(inti=0;i<memorySize;i+)arrayi=-1;for(intj=0;j<320;j+)if(struPagepagej.flag=0)pageReplaceNum+;if(pageLoadedNum=memorySize)/內(nèi)存空間已滿(struPagearray0.flag=0;for(intk=0;k<memorySize-1;k+)arrayk=arrayk+1;arraypageLoadedNum-1=pagej;struPagepagej.flag=1;else/內(nèi)存空間還有空閑(str
15、uPagepagej.flag=1;arraypageLoadedNum+=pagej;for(inti=0;i<memorySize;i+)(if(arrayi=-1)outputString+="t"elseoutputString+=arrayi.ToString()+"t"outputstring+="n"shootRate=1-pageReplaceNum/320.0;this.rtboxMemory.Text=""this.shootRateBox.Text=shootRate.ToString(
16、);this.rtboxMemory.Text=outputString;privatevoidbtnLRU_Click(objectsender,EventArgse)for(inti=0;i<32;i+)/初始化結(jié)構(gòu)體struPagei.pageNum=i;struPagei.flag=0;struPagei.count=0;struPagei.distance=320;)intpageReplaceNum=0;/替換的頁面數(shù)doubleshootRate;/命中率intmemorySize=Int32.Parse(comboBox1.Text);/內(nèi)存的容量Stringoutput
17、String=""/每次替換后的內(nèi)存狀態(tài)intpageLoadedNum=0;/已裝入內(nèi)存的頁面數(shù)intarray=newintmemorySize;/暫存已裝入內(nèi)存的頁面號(hào)for(inti=0;i<memorySize;i+)arrayi=-1;for(intj=0;j<320;j+)struPagepagej.count=0;if(struPagepagej.flag=0)/頁面未曾裝入內(nèi)存pageReplaceNum+;if(pageLoadedNum=memorySize)/內(nèi)存空間已滿intmax=0;for(intk=1;k<pageLoade
18、dNum;k+)/找出count最小的頁面if(struPagearrayk.count>struPagearraymax.count)max=k;/進(jìn)行頁面替換struPagearraymax.flag=0;struPagepagej.flag=1;arraymax=pagej;for(intn=0;n<pageLoadedNum;n+)struPagearrayn.count+;else/內(nèi)存還有空閑j;struPagepagej.flag=1;arraypageLoadedNum+=pagefor(ints=0;s<pageLoadedNum;s+)struPagear
19、rays.count+;else/頁面已轉(zhuǎn)入內(nèi)存for(intt=0;t<pageLoadedNum;t+)struPagearrayt.count+;for(inti=0;i<memorySize;i+)if(arrayi=-1)outputString+="t"elseoutputstring+=arrayi.ToString()+"t")outputstring+="n")shootRate=1-pageReplaceNum/320.0;this.rtboxMemory.Text=""this.s
20、hootRateBox.Text=shootRate.ToString();this.rtboxMemory.Text=outputString;)privatevoidbtnOPT_Click(objectsender,EventArgse)for(inti=0;i<32;i+)/初始化結(jié)構(gòu)體struPagei.pageNum=i;struPagei.flag=0;struPagei.count=0;struPagei.distance=320;)intpageReplaceNum=0;/替換的頁面數(shù)doubleshootRate;/命中率intmemorySize=Int32.Par
21、se(comboBox1.Text);/內(nèi)存的容量StringoutputString=""每次替換后的內(nèi)存狀態(tài)intpageLoadedNum=0;/已裝入內(nèi)存的頁面數(shù)intarray=newintmemorySize;/暫存已裝入內(nèi)存的頁面號(hào)for(inti=0;i<memorySize;i+)arrayi=-1;for(intj=0;j<320;j+)if(struPagepagej.flag=0)/頁面未曾裝入內(nèi)存pageReplaceNum+;if(pageLoadedNum=memorySize)/內(nèi)存空間已滿intmax=0;for(intk=1;k<pageLoadedNum;k+)/找出distance最遠(yuǎn)的頁面if(struPagearrayk.distance>struPagearraymax.distance)max=
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 事故反思報(bào)告范文
- 上海視覺藝術(shù)學(xué)院《路由與交換技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海視覺藝術(shù)學(xué)院《互聯(lián)網(wǎng)開發(fā)Web框架與應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025酒店裝修合同書協(xié)議
- 課題申報(bào)書:高質(zhì)量教育視域下科學(xué)本質(zhì)理解轉(zhuǎn)化的實(shí)證研究
- 課題申報(bào)書:高校思想政治教育的信任問題及其紓解研究
- 2023-2024屆高考作文備考導(dǎo)向創(chuàng)新
- 25少年閏土 公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 上海閔行職業(yè)技術(shù)學(xué)院《數(shù)字化教學(xué)資源設(shè)計(jì)與開發(fā)(C)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海民航職業(yè)技術(shù)學(xué)院《建設(shè)工程招投標(biāo)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年安徽省廣播電視行業(yè)職業(yè)技能大賽(有線廣播電視機(jī)線員)考試題庫(含答案)
- 山東省濟(jì)南市濟(jì)陽區(qū)三校聯(lián)考2024-2025學(xué)年八年級(jí)上學(xué)期12月月考語文試題
- 糖尿病酮酸癥中毒
- Unit 6 Food Lesson 1(說課稿)-2024-2025學(xué)年人教精通版(2024)英語三年級(jí)上冊(cè)
- 東北師大附屬中學(xué)2025屆高一物理第一學(xué)期期末質(zhì)量檢測(cè)試題含解析
- HSE(健康、安全與環(huán)境)計(jì)劃書
- 金蛇納瑞2025年公司年會(huì)通知模板
- 部編版小學(xué)五年級(jí)上冊(cè)道德與法治單元檢測(cè)試卷含答案(全冊(cè))
- 有限空間應(yīng)急預(yù)案演練方案及過程
- GB/T 16288-2024塑料制品的標(biāo)志
- 2024-2030年農(nóng)產(chǎn)品物流行業(yè)市場(chǎng)深度分析及競(jìng)爭格局與投資價(jià)值研究報(bào)告
評(píng)論
0/150
提交評(píng)論