2013~2014學年第一學期
作業系統實驗報告
實驗題目: 實驗四儲存管理
專業: 電腦科學與技術
班級: bu計算機111
學號: 1111503111
姓名: 於秀芳
實驗日期: 2023年11月22日
實驗地點: 1j2a205
鹽城工學院優集學院
實驗四儲存管理
1、實驗目的
儲存管理的主要功能之一是合理地分配空間。請求頁式管理是一種常用的虛擬儲存管理技術。
本實驗的目的是通過請求頁式儲存管理中頁面置換演算法模擬設計,了解虛擬儲存技術的技術特點,掌握請求頁式儲存管理的頁面置換演算法。
2、實驗內容
(1)通過隨機數產生乙個指令序列,共320條指令。指令的位址按下述原則生成:
①50%的指令是順序執行的;
②50%的指令是均勻分布在前位址部分;
③50%的指令是均勻分布在後位址部分。
具體的實施方法是:
①在 [0,319] 的指令之間隨即選取一起點m;
②順序執行一條指令,即執行位址為m+1的指令;
③在前位址[0,m+1]中隨機選取一條指令並執行,該指令的位址為m′;
④順序執行一條指令,其位址為 m′+ 1;
⑤在後位址[m′+ 2,319]中隨機選取一條指令並執行;
⑥重複上述步驟①-⑤,直到執行320次指令。
(2)將指令序列變換為頁位址流
設:①頁面大小為1k;
②使用者記憶體容量為4頁到32頁;
③使用者虛存容量為32k。
在使用者虛存中,按每k存放10條指令排在虛存位址,即320條指令在虛存中的存放方式為:
第0條-第9條指令為第0頁(對應虛存位址為[0,9]);
第10條-第19條指令為第一頁(對應虛存位址為[10,19]);
… …第310條~第319條指令為第31頁(對應虛位址為[310,319])。
按以上方式,使用者指令可組成32頁。
(3)計算並輸出下述各種演算法在不同記憶體容量下的命中率。
①先進先出的演算法(fifo);
②最近最少使用演算法(lrr);
③最佳淘汰演算法(opt)先淘汰最不常用的頁位址;
④最少訪問頁面演算法(lfr);
⑤最近最不經常使用演算法(nur)。
其中③和④為選擇內容。
命中率=1-頁面失效次數/頁位址流長度
在本實驗中,頁位址流長度為320,頁面失效次數為每次訪問相應指令時,該指令所對應的頁不在記憶體的次數。
3、隨機數產生辦法,linux或unix系統提供函式strand()和rand(),分別進行初始化和產生隨機數。
a[0]=10*rand()/65535*319+1;
a[1]=10*rand()/65535*a[0];
語句可用來產生a[0]與a[1]中的隨機數。
實驗**:
#define true 1
#define false 0
#define invalid -1
#define null 0
#include
#include
#define total_instruction 320
#define total_vp 32
#define clear_period 50
typedef struct
pl_type;
pl_type pl[total_vp
typedef struct pfc_struct
int pn; int pfn;
struct pfc_struct *next;
}pfc_type;
pfc_type pfc[total_vp], *freepf_head, *busypf_head, *busypf_tail;
int diseffect, a[total_instruction];
int page[total_instruction], offset[total_instruction];
int initialize(int); int fifo(int); int lru(int); int lfu(int); int nur(int);
int opt(int);
int main( )
a[i]=s; a[i+1]=a[i]+1
a[i+2]=(float)a[i]*rand( )/32767/32767/2;
a[i+3]=a[i+2]+1;
s=(float)(318-a[i+2])*rand( )/32767/32767/2+a[i+2]+2;
if((a[i+2]>318)||(s>319))
printf("a[%d+2],a number which is :%d and s==%d",i,a[i+2],s);
}for (i=0;i
for(i=4;i<=32;i++) /*使用者記憶體工作區從4個頁面到32個頁面*/
return 0; }
int initialize(int total_pf
for(i=0;i
pfc[total_pf-1].next=null;
pfc[total_pf-1].pfn=total_pf-1;
freepf_head=&pfc[0空頁面佇列的頭指標為pfc[0]*/
return 0; }
int fifo(int total_pf先進先出演算法total_pf:使用者程序的記憶體頁面數*/
p=freepf_head->next
freepf_head->pn=page[i];
pl[page[i]].pfn=freepf_head->pfn;
freepf_head->next=null; /*使busy的尾為null*/
if(busypf_tail==null)
else
{busypf_tail->next=freepf_head;
busypf_tail=freepf_head;
儲存器管理實驗
實驗名稱 儲存器管理實驗 儀器 裝置 計算機 參考資料 作業系統實驗指導書 實驗目的 設計乙個請求頁式儲存管理方案,並編寫模擬程式實現。實驗內容 編寫程式用來模擬虛擬頁式儲存管理中的頁面置換要求 1.快表頁面固定為4塊 2.從鍵盤輸入n個頁面號 3.輸出每次物理塊中的頁面號和缺頁次數,缺頁率 實驗原...
第4章儲存器管理
一 判斷題 正確的在括號中記 錯誤的記 1.為了減少內部碎片,頁應偏小為好 2.為了減少缺頁中斷率,頁應該小一些 8.lru頁面排程演算法總是選擇在主存駐留時間最長的頁面被淘汰 二 單項選擇題,在每小題的四個備選答案中選出乙個正確答案,並將其 寫在題幹後面的括號內。不選 錯選或多選者該題無分。1.在...
儲存管理實驗報告
實驗三 儲存管理 一 實驗目的 乙個好的計算機系統不僅要有乙個足夠容量的 訪問速度高的 穩定可靠的主儲存器,而且要能合理地分配和使用這些儲存空間。當使用者提出申請儲存器空間時,儲存管理必須根據申請者的要求,按一定的策略分析主存空間的使用情況,找出足夠的空閒區域分配給申請者。當作業撤離或主動歸還主存資...