操作系統(tǒng)試驗(yàn)_第1頁(yè)
操作系統(tǒng)試驗(yàn)_第2頁(yè)
操作系統(tǒng)試驗(yàn)_第3頁(yè)
操作系統(tǒng)試驗(yàn)_第4頁(yè)
操作系統(tǒng)試驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)報(bào)告書學(xué)生姓名 學(xué)號(hào) 班級(jí) 20112012 學(xué)年第學(xué)期計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱存儲(chǔ)管理實(shí)驗(yàn)序號(hào)實(shí)驗(yàn)二實(shí)驗(yàn)日期2012-12-17實(shí)驗(yàn)人高雪一、實(shí)驗(yàn)?zāi)康暮鸵笳?qǐng)求頁(yè)式存儲(chǔ)管理是一種常用的虛擬存儲(chǔ)管理技術(shù)。本實(shí)驗(yàn)?zāi)康氖峭ㄟ^(guò)請(qǐng)求頁(yè)式存儲(chǔ)管理中 頁(yè)面置換算法的模擬設(shè)計(jì),了解虛擬存儲(chǔ)技術(shù)的特點(diǎn),掌握請(qǐng)求頁(yè)式存儲(chǔ)管理的頁(yè)面置換算法。二、相關(guān)背景知識(shí)虛擬存儲(chǔ)技術(shù):所謂虛擬存儲(chǔ),就是把內(nèi)存與外存有機(jī)的結(jié)合起來(lái)使用,從而得到一個(gè)容量 很大的 內(nèi)存”這就稱之為虛擬存儲(chǔ)。頁(yè)面置換算法:如果內(nèi)存空間已被裝滿而又要裝入新頁(yè)時(shí),必須按某種算法將內(nèi)存中的一些頁(yè)淘汰出去,以便于調(diào)入新頁(yè),這個(gè)工作就是頁(yè)面置換。這個(gè)

2、選擇淘汰頁(yè)的方法稱為頁(yè)面置換算 法。如最佳值換算法,先進(jìn)先出,LRU,簡(jiǎn)單的Clock算法等等。隨機(jī)數(shù)產(chǎn)生:Linux或UNIX系統(tǒng)提供函數(shù)srand()和rand(),分別進(jìn)行初始化和產(chǎn)生隨機(jī)數(shù)。三、實(shí)驗(yàn)內(nèi)容1:通過(guò)隨機(jī)數(shù)產(chǎn)生一個(gè)指令序列,共320條指令。指令的地址按下述原則生成:50%的指令是順序執(zhí)行的;25%的指令是均勻分布在前地址部分;25%的指令是均勻分布在后地址部分;具體的實(shí)施方法是:在0,319的指令地址之間隨機(jī)選取一起點(diǎn) m; 順序執(zhí)行一條指令,即執(zhí)行地址為 m+1的指令;在前地址0,m+1中隨機(jī)選取一條指令并執(zhí)行,該指令的地址為m順序執(zhí)行一條指令,其地址為m1 ;在后地址m

3、2, 319中隨機(jī)選取一條指令并執(zhí)行;重復(fù)上述步驟15,直到執(zhí)行320次指令。2:將指令序列變換成頁(yè)地址流,設(shè)頁(yè)面大小為1K ;用戶內(nèi)存容量為4頁(yè)到32頁(yè);用戶虛存容量為 32K。在用戶虛存中,按每 K存放10條指令排列虛存地址,即320條指令在虛存中存放的方式為:第0條至第9條指令為第0頁(yè)(對(duì)應(yīng)虛存地址為0, 9);第10條至第19條指令為第1頁(yè)(對(duì)應(yīng)虛存地址為10,19); 第310條至第319條指令為第31頁(yè)(對(duì)應(yīng)虛存地址為310,319);按以上方式,用戶指令可以組成 32頁(yè)。3:計(jì)算并輸出下述各種算法在不同內(nèi)存容量下的命中率。先進(jìn)先出頁(yè)面淘汰算法(FIFO)最近最久未使用頁(yè)面淘汰法(

4、LRU)命中率=1 -頁(yè)面失效次數(shù)/頁(yè)地址流長(zhǎng)度在本實(shí)驗(yàn)中,頁(yè)地址流長(zhǎng)度為320,頁(yè)面失效次數(shù)為每次訪問(wèn)相應(yīng)指令時(shí),該指令對(duì)應(yīng)的頁(yè)不在內(nèi)存的次數(shù)。四、關(guān)鍵數(shù)據(jù)結(jié)構(gòu)與函數(shù)的說(shuō)明void FIFO(i nt*);/FIFO頁(yè)面算法的函數(shù)void LRU(i nt*);/LRU頁(yè)面算法的函數(shù)數(shù)組zhiling320是用來(lái)存放320條指令的void main()用來(lái)調(diào)度FIFO LRU函數(shù),以及給320條指令初始化,并且給執(zhí)行過(guò) 的指令改變數(shù)值作為標(biāo)記五、編譯與執(zhí)行過(guò)程截圖六、實(shí)驗(yàn)結(jié)果與分析七、調(diào)試時(shí)遇到的問(wèn)題及解決方法(提供 BUG截屏)八、調(diào)試后的程序源代碼#in clude#in clude#i

5、n clude#in cludevoid FIFO(i nt*);/FIFOvoid LRU(i nt*);/LRUvoid mai n()sran d( un sig ned)time(O);int zhili ng320, n;int i,j,q=319,p,e,f,g;memset(zhili ng,-1,sizeof(i nt)*320);p=0;i=320;while(i)aga in:dop=ra nd();while(p318|p%2=1|zhili ngp!=-1|p=1);if(p=0) goto aga in;p+;g=0; for(j=0;jp;j+)if(zhi lin

6、 gj=-1) g+;if(g=0) goto aga in;doe=ra nd();while(e=p|e%2=1|zhili nge!=-1);e+;dof=ran d(); while(f319); zhili ngp_1=p; zhil in gp=e-1; zhili nge-1=e; zhil in ge=f; g=0;for(j=0;j320;j+)if(zhi lin gj=-1) g+;i=g;for(i=0;i320;i+)prin tf(%d ,zhili ngi);dodoprintf(算法:n 1:FIFOn2:LRUn3:exitn”); scan f(%d,&p)

7、;while(p!=1 &p!=2&p!=3);if(p=1) FIFO(zhili ng);if(p=2) LRU(zhili ng);while(p!=3);void FIFO(i nt *c)int i,j, n,*m,a=0,b=0,f;float r;doprintf(請(qǐng)輸入用戶內(nèi)存頁(yè)數(shù)(4-32) n); sca nf(%d,&n);while( n32);m=(i nt*)malloc(sizeof(i nt)* n); memset(m,-1,sizeof(i nt)* n);for(i=0;i320;i+)f=0;for(j=0;j n;j+)if(ci=mj*10) f=1

8、; if(f=0) a+; mb=ci/10; b+;if(b=n) b=0; r=1.0-(float)a)/320.0;printf(FIFO 算法命中率為:%fn”,r); free(m);void LRU(i nt *c)in t i,j,n ,*m,*t,f,k,miss=0;float r;doprintf(請(qǐng)輸入用戶內(nèi)存頁(yè)數(shù)(4-32) n); sca nf(%d,&n);while( n32);m=(i nt*)malloc(sizeof(i nt)* n);t=(i nt*)malloc(sizeof(i nt)* n); memset(m,-1,sizeof(i nt)*

9、n); memset(t,0,sizeof( in t)* n);for(i=0;i320;i+)f=0;for(j=0;j n;j+)if(ci=mj*10)f=1;tj=-1; break;for(j=0;j n;j+)tj+; if(f=O)miss+;k=0;for(j=0;jtk) k=j;tk=0; mk=ci/10;%fn,r); r=1.0-(float)miss)/320.0; prin tf(LRU算法命中率為: free(m);free(t);九、實(shí)驗(yàn)體會(huì)這個(gè)實(shí)驗(yàn)難度非常大。主要在于對(duì)實(shí)驗(yàn)要求的理解,首先就是320條指令,這個(gè)代碼是通過(guò)數(shù)組對(duì)指令進(jìn)行了模擬,初始全為-1,執(zhí)行過(guò)的擇復(fù)制給該指令跳轉(zhuǎn)到的下一條指令的數(shù)字。這樣做的目的,是為了后面的算法,在頁(yè)面中可以進(jìn)行數(shù)字的判定,以判斷是否命中。這個(gè)第一個(gè) 難點(diǎn)就是對(duì)于這 320條指令的模擬,這段程序代碼的邏輯思維比較強(qiáng),特別是對(duì)于細(xì)節(jié)的處理, 五步一共執(zhí)行了 4條指令,每條指令的范圍必須要確定好。第二個(gè)難點(diǎn)就在于對(duì)FIFO與LRU的理解,如果對(duì)于這 2個(gè)調(diào)度算法的命中或不命中不能理解的話,是無(wú)法完成程

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論