模拟操作系统的页面置换实验报告模板Word文件下载.docx
- 文档编号:16111221
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:17
- 大小:145.05KB
模拟操作系统的页面置换实验报告模板Word文件下载.docx
《模拟操作系统的页面置换实验报告模板Word文件下载.docx》由会员分享,可在线阅读,更多相关《模拟操作系统的页面置换实验报告模板Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
为满足上述条件,
可采取下列方法:
设d0=10000,第n个指令地址为dn,第n+1个指令地址
为dn+1,n的取值范围为0到255。
每次生成一个1到1024范围内的随机
数a,如果a落在1到512范围内,则dn+1=dn+1。
如果a落在513到768
范围内,则设置dn+1为1到dn范围内一个随机数。
如果a落在769到1024
范围内,则设置dn+1为dn到32767范围内一个随机数。
例如:
srand();
初始化一个随机函数。
a[0]=10*rand()/32767*255+1;
a[1]=10*rand()/32767*a[0]…语句可用来
产生a[0]与a[1]中的随机数。
或采用以下方式:
(1)通过随机数产生一个指令序列,共320条指令。
指令的
地址按下述原则生成:
A:
50%的指令是顺序执行的
B:
25%的指令是均匀分布在前地址部分
C:
25%的指令是均匀分布在后地址部分
具体的实施方法是:
在[0,319]的指令地址之间随机选取一起点m
顺序执行一条指令,即执行地址为m+1的指令
在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m'
D:
顺序执行一条指令,其地址为m'
+1
E:
在后地址[m'
+2,319]中随机选取一条指令并执行
F:
重复步骤A-E,直到320次指令
(2)将指令序列变换为页地址流
设:
页面大小为1K;
用户内存容量4页到32页;
用户虚存容量为32K。
在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的
存放方式为:
第0条-第9条指令为第0页(对应虚存地址为[0,9])
第10条-第19条指令为第1页(对应虚存地址为[10,19])
第310条-第319条指令为第31页(对应虚存地址为[310,319])
按以上方式,用户指令可组成32页。
4、页面大小的取值范围为1K,2K,4K,8K,16K。
按照页面大小将指令
地址转化为页号。
对于相邻相同的页号,合并为一个。
四、实验设计
1.产生访问页面的序列,保存在数组queue中
2.FIFO(先进先出)算法
数组queue_f表示物理内存中的内容
As为页面置换计数器
图1
3.LRU(最近最久未使用)算法
数组queue_f表示物理内存中的内容
数组queue_t与queue_f对应为其进入内存未使用的时间标志
As为页面置换计数器
图2
4.Opt算法
数组queue_t与queue_f对应为其后续页面访问序列出现的第一位置
五、实验实现
voidCMyDlg:
:
OnFIFO()
{
CStringstr1="
"
;
CStringstr2="
intb;
intm=0;
intas=0;
//置换页面计数
boolx;
//页面是否需要置换
if(m_capm<
count)//分配的页面数少于所需要访问的页面数
{
m_list.ResetContent();
UpdateData(0);
for(inti=0;
i<
count;
i++)
{
str1="
str2="
x=true;
for(intk=0;
k<
m_capm;
k++)
{
if(queue[i]==queue_f[k])
{
x=false;
//判断物理块中是不是有跟当前须替换的页面
break;
}
}//如果没有且无空闲的页面,则需要置换
if(x)
inta;
a=(i-m)%m_capm;
queue_f[a]=queue[i];
as++;
}
else
m++;
intmm;
if(m<
m_capm)mm=m;
elsemm=m_capm;
for(intj=0;
j<
mm;
j++)
b=queue_f[j];
str2.Format("
%d"
b);
str1=str1+"
"
+str2;
m_list.InsertString(-1,str1);
}
m_zhihuanshu=as;
m_zhihuanlv=(double)as/count;
if((as-m_capm)<
=0)
{
m_queyeshu=0;
m_queyelv=0;
else
m_queyeshu=as-m_capm;
m_queyelv=(double)(as-m_capm)/count;
}
else
MessageBox("
页面总数小于物理块,不需要进行交换操作!
);
}
OnLRU()
inta,b;
intm=0;
{
queue_t[k]=0;
for(intj=0;
j++)
{
if(j!
=k)
queue_t[j]++;
//使物理块中的每个未使用页面的时间增一
}
m++;
if(x)
{
intc=0,d;
if((i-m)<
m_capm)
a=i-m;
}//当前物理页面未填满时直接装入
else
d=queue_t[0];
for(inth=0;
h<
h++)
if(d<
queue_t[h])
{
d=queue_t[h];
c=h;
}
a=c;
//找出物理块中最久未使用的页面号
//将其替换
queue_t[a]=0;
for(k=0;
if(k!
=a)
queue_t[k]++;
//使物理块中的每个未改变页面的时间增一
m_list.InsertString(-1,str1);
Onopt()
intopu;
//当前占有的页面数
opu=0;
//判断物理块中是不是有跟当前须替换的页面
if((x)&
&
(opu<
m_capm))//还有空位
queue_f[opu]=queue[i];
opu++;
(opu==m_capm))
{//找最晚出现的页面号
for(intnumber=0;
number<
number++)
for(intnum=i;
num<
num++)
if(queue_f[number]==queue[i])
queue_t[number]=i;
if(num==count)
queue_t[nu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 操作系统 页面 置换 实验 报告 模板