操作系統(tǒng)管理---虛擬存儲器-實驗報告-代碼_第1頁
操作系統(tǒng)管理---虛擬存儲器-實驗報告-代碼_第2頁
操作系統(tǒng)管理---虛擬存儲器-實驗報告-代碼_第3頁
操作系統(tǒng)管理---虛擬存儲器-實驗報告-代碼_第4頁
操作系統(tǒng)管理---虛擬存儲器-實驗報告-代碼_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、淮海工學(xué)院計算機工程學(xué)院實驗報告書課程名: 操作系統(tǒng)原理 題 目: 虛擬存儲器 班 級: 學(xué) 號: 姓 名: 評語:成績: 指導(dǎo)教師: 批閱時間: 年 月 日 操作系統(tǒng)原理 實驗報告 - 6 -一、目的與要求(一)目的由于超大規(guī)模集成電器電路()技術(shù)的發(fā)展,使存貯器的容量不斷擴大,價格大幅度下降。但從應(yīng)用角度看,存貯器的容量和成本總會受到一定的限制。所以,提高存貯器的使用效率始終是操作系統(tǒng)研究的重要課題之一,虛擬存貯器技術(shù)是用來擴大主存容量的一種重要的方法。 本實習(xí)要求學(xué)生獨立地用高級語言編寫幾個常用的存貯器分配算法,并能設(shè)計一個存貯管理的模擬程序,能對各種算法進行分析比較,評測其性能優(yōu)劣,從

2、而加深對這些算法的了解。(二)要求為了比較真實地模擬存貯器管理,可預(yù)先生成一個大致符合實際情況的指令地址流。然后,通過模擬這樣一種指令序列的執(zhí)行來計算和分析比較各種算法的訪問命中率。二、示例題目 本示例給出采用頁式分配存貯器管理方案,并通過分析、計算不同頁面淘汰算法情況下的訪問命中率來比較各種算法的優(yōu)劣,另外也考慮改變頁面尺寸大小和實際存貯器容量對計算結(jié)果的影響,從而可為選擇好的算法、合適的頁面尺寸和存貯器實際容量提供依據(jù)。 本程序是按下述原則生成指令序列的: ()的指令是順序執(zhí)行的。 ()的指令是均勻分布在前地址部分。 ()的指令是均勻分布在后地址部分。 示例中選用最佳淘汰算法(OPT)和最

3、近最少使用頁面淘汰算法()計算頁面命中率。公式為: 頁面失敗次數(shù) 命中率 頁地址流長度 假定虛擬存貯容量為,頁面尺寸從到,實存容量從頁到頁。.算法與框圖()最佳淘汰算法()。這是一種理想的算法,可用來作為衡量其他算法優(yōu)劣的依據(jù),在實際系統(tǒng)中是難以實現(xiàn)的,因為它必須先知道指令的全部地址流。由于本示例中已生成了全部地址流,故可計算最佳命中率。 該算法的準(zhǔn)則是淘汰已滿頁表中以后不再訪問或是最遲訪問的頁。這就要求將頁表中的頁逐個與后繼指令訪問的所有頁比較,如后繼指令不再訪問此頁,則把此頁淘汰,不然得找出后繼指令中最遲訪問的頁面予以淘汰。可見最佳淘汰算法要化費較長的運算時間。()最近最少使用頁面淘汰算法

4、()。這是一種經(jīng)常使用的方法,有各種不同的實施方案,這里是采用的是不斷調(diào)整頁表鏈的方法,即總是淘汰頁表鏈鏈?zhǔn)椎捻摚研略L問的頁插入鏈尾。如果當(dāng)前調(diào)用頁已在頁表內(nèi),則把它再次調(diào)整到鏈尾。這樣就能保證最近使用的頁,總是處于靠近鏈尾部分,而不常使用的頁就移到鏈?zhǔn)?,逐個被淘汰,在頁表較大時,調(diào)整頁表鏈的代價也是不小的。 三、實驗步驟與源程序#include "iostream"#include "stdio.h"#include "stdlib.h"using namespace std;#define Max 30/某進程調(diào)入內(nèi)存中的最大

5、頁面數(shù)#define Size 10/系統(tǒng)為某進程分配的最大物理塊數(shù)void Init(int Block,int m)/初始化物理塊int i;for(i=0;i<m;i+)Blocki=-1;void creat(int Page,int n)/輸入頁面串引用號int i;for(i=0;i<n;i+)cin>>Pagei;void Init1(int Block1,int m1)int i;for(i=0;i<m1;i+)Block1i=-1;void creat1(int Page,int n1)int i;for(i=0;i<n1;i+)Pagei

6、;void LRU(int Page,int Block1,int n1,int m1)int i,j,max_stay=0,count=0;int get=-1,flag=-1,block_num=-1;int timeSize;for(i=0;i<m1;i+)/初始化timetimei=0;for(i=0;i<n1;i+)for(j=0;j<m1;j+)/有空閑物理塊時,頁面直接駐入內(nèi)存空閑塊if(Block1j=-1)get=j;/物理塊j即將(/等待)駐入新頁面break;for(j=0;j<m1;j+)/查找序號相同的頁面 if(Block1j=Pagei)/

7、物理塊j中頁面與當(dāng)前期望調(diào)入內(nèi)存的頁面相同 timej=0;flag=j;break;for(j=0;j<m1;j+) /找到駐留內(nèi)存時間最久的頁面置換出if(timej>max_stay) max_stay=timej;block_num=j; /block_num標(biāo)記當(dāng)前序號物理塊中頁面駐留時間最久if(flag=-1)/不存在相同頁面if(get!=-1)/物理塊即將(/等待)駐入新頁面Block1get=Pagei;/存入頁面timeget=0;/當(dāng)前物理塊重新計時for(j=0;j<=get;j+)/已駐入頁面的駐留時間加1timej+;get=-1;else/頁面

8、調(diào)度置換,序號block_num的物理塊是駐留時間最久的Block1block_num=Pagei;timeblock_num=0;for(j=0;j<Size;j+)timej+;block_num=-1;max_stay=0;count+;else/待調(diào)入頁面與序號flag的物理塊中頁面相同for(j=0;j<m1;j+)timej+;flag=-1;for(j=0;j<m1;j+)/輸出物理塊中的頁面駐入情況cout<<" "<<Block1j;cout<<endl;if(n1>m1)count=count+

9、m1;cout<<"缺頁中斷次數(shù)為:"<<count<<endl;void FIFO(int Page,int Block,int n,int m)int i,j,max_stay=0,count=0;int get=-1,flag=-1,block_num=-1;int timeSize;for(i=0;i<m;i+)timei=0;for(i=0;i<n;i+)for(j=0;j<m;j+)if(Blockj=-1)get=j;break;for(j=0;j<m;j+)if(Blockj=Pagei)flag=

10、j;break;for(j=0;j<m;j+)if(timej>max_stay)max_stay=timej;block_num=j;if(flag=-1)if(get!=-1)Blockget=Pagei;timeget=0;for(j=0;j<=get;j+)timej+;get=-1;elseBlockblock_num=Pagei;timeblock_num=0;for(j=0;j<Size;j+)timej+;block_num=-1;max_stay=0;count+;elsefor(j=0;j<m;j+)timej+;flag=-1;for(j=0

11、;j<m;j+)cout<<" "<<Blockj;cout<<endl;if(n>m)count=count+m;cout<<"缺頁中斷次數(shù)為:"<<count<<endl;void menu()cout<<"-1.LRU頁面置換算法-"<<endl;cout<<"-2.FIFO 頁面置換算法-"<<endl;cout<<"-3.退出-"<<

12、;endl;cout<<"-默認(rèn):-1表示物理塊空閑-"<<endl;cout<<"請選擇算法"<<endl;void main()int n,m,PageMax,BlockSize,n1,m1,Block1Size; char t; cout<<endl<<"請輸入系統(tǒng)為進程分配的物理塊數(shù)m<=10:" cin>>m; m1=m;Init(Block,m);Init1(Block1,m1);cout<<"請輸入總頁面數(shù)n&

13、lt;=30:"cin>>n;n1=n;cout<<"n請輸入頁面號引用串:"creat(Page,n); creat1(Page,n1); while(1) menu(); cin>>t; switch(t) case '1':LRU(Page,Block1,n1,m1); continue; case '2':FIFO(Page,Block,n,m); continue; case '3':exit(0);四、測試數(shù)據(jù)與實驗結(jié)果 圖1 輸入要分配的物理塊數(shù)、頁面總數(shù)、頁面序列號圖2 LRU算法的實現(xiàn)圖3 FIFO算法的實現(xiàn)五、結(jié)果分析與實驗體會頁面置換算法理解比較容易,這次根據(jù)學(xué)號要求實現(xiàn)的是LRU和FIFO算法的實現(xiàn)。其實這兩種算法的程序編寫比較容易,雖然不全是自己編寫的,一部分是參考的網(wǎng)上的例題,但是通過對每一語句的理解,自己弄懂了整個程序的執(zhí)行原理。但是,在編寫過程中自己還是遇到了一些問題。最大的一個問題就是兩個算法的正確實現(xiàn),在程序的編

溫馨提示

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

評論

0/150

提交評論