實驗4儲存管理

2021-09-15 01:30:26 字數 3027 閱讀 5979

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.在...

儲存管理實驗報告

實驗三 儲存管理 一 實驗目的 乙個好的計算機系統不僅要有乙個足夠容量的 訪問速度高的 穩定可靠的主儲存器,而且要能合理地分配和使用這些儲存空間。當使用者提出申請儲存器空間時,儲存管理必須根據申請者的要求,按一定的策略分析主存空間的使用情況,找出足夠的空閒區域分配給申請者。當作業撤離或主動歸還主存資...