實驗四分頁式儲存管理

2022-09-17 15:30:11 字數 1634 閱讀 8148

自動化1203張千偉201203870323

1、實驗目的

1.熟悉分頁式儲存管理

2.掌握最久未使用演算法以及fifo演算法

2、實驗內容

1.實驗**

#include<>

#include<>

#include<>

#include<>

#define bsize 4 //物理塊大小

#define psize 16 //程序大小

typedef struct page

page頁面邏輯結構,結構為方便演算法實現設計*/

page b[bsize記憶體單元數*/

int c[bsize][psize]; /*暫儲存記憶體當前的狀態:緩衝區*/

int queue[100記錄調入佇列*/

int k調入佇列計數變數*/

int phb[bsize]=; //物理塊標號

int pro[psize]=; //程序序列號

int flag[bsize] = ; //程序等待次數(存放最久未被使用的程序標誌)

int i = 0, j = 0,k = 0; //i表示程序序列號,j表示物理塊號

int m = -1, n = -1物理塊空閒和程序是否相同判斷標誌

int max = -1,maxflag = 0; //標記替換物理塊程序下標

int count = 0統計頁面缺頁次數

隨機產生序列號函式

int* build()

printf("\n");

return(pro);

}//查詢空閒物理塊

int searchpb()

return -1;

}int searchpro()//查詢相同程序

}return -1;

}void empty()//初始化記憶體

void fifo()//先進先出頁面置換演算法

else存在相同的程序

for(j = 0 ;j < bsize; j++)

printf("\n");

}printf("缺頁次數為:%d\n",count);

printf("\n");

}void init(page *b,int c[bsize][psize]) /*初始化記憶體單元、緩衝區*/

for(i=0;ifor(j=0;jc[i][j]=-1;

} int getmax(page *b) /*取得在記憶體中停留最久的頁面,預設狀態下為最早調入的頁面*/

return tag;

}int equation(int fold,page *b) /*判斷頁面是否已在記憶體中*/

return -1;

} /*lru核心部分*/

void lruu(int fold,page *b)

else

}void lru()

{ int i,j;

k=-1;

init(b, c);

for(i=0;i {

lruu(pro[i],b);

c[0][i]=pro[i];

記錄當前的記憶體單元中的頁面*/

for(j=0;j

第四章 分頁式儲存管理方式

1.某系統採用頁式儲存管理策略,擁有邏輯空間32頁,每頁2k,擁有物理空間1m。1 寫出邏輯位址的格式。因為擁有邏輯空間32頁,所以頁號需要5位,每頁2k,所以頁內位址需要11位,所以邏輯位址的格式如下 2 若不考慮訪問許可權等,程序的頁表有多少項?每項至少有多少位?每個程序最多32個頁面,因此程序...

模擬段頁式儲存管理位址變換

電腦科學與技術學院 2007 2008 學年第一學期 作業系統 課程設計 題目 模擬段頁式儲存管理位址變換 教師馮霞 班級050341d班 學號050341404 姓名陳玉虎 成績1.題目分析 1.1 設計目的 了解記憶體管理機制,掌握段頁式虛擬儲存技術 理解記憶體分配原理,特別是以頁面為單位的虛擬...

專題四分式與分式方程

分式 知識要點 1.分式 整式a除以整式b,可以表示成的形式,如果除式b中含有那麼稱為分式 若 則有意義 若 則無意義 若則 0.2 分式的基本性質 分式的分子與分母都乘以 或除以 同乙個不等於零的整式,分式的用式子表示為 3.約分 把乙個分式的分子和分母的約去,這種變形稱為分式的約分 4 通分 根...