【实验】请求调页存储管理方式的模拟

本实验通过模拟请求页式存储管理,采用FIFO、LRU和OPT算法,研究不同内存容量下页面置换的效果。实验内容包括随机指令序列生成、页地址流变换、命中率计算。结果显示,内存容量增加能提高命中率,LRU算法相对FIFO有优势。
摘要由CSDN通过智能技术生成

实验目的

本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。

 

 

实验内容

(1)   通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成:

a50%的指令是顺序执行的。

b25%的指令是均匀分布在前地址部分

c25%的指令是均匀分布在后地址部分

 

具体的实施方法是:

a  [0,319]的指令地址之间随机选取一起点m

b  顺序执行一条指令,即执行地址为m+1的指令

c  在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’;

d  顺序执行一条指令,其地址为m+1

e  在后地址[m+2,319]中随机选取一条指令并执行

f  重复上述步骤,直至执行320次指令

 

(2) 将指令序列变换成为页地址流

设:

a  页面大小为

假设每个放10条指令,分配给作业的内块数为4。 用C语言语言模拟一个作业的执行过程,该作业共有320条指令, 即它的地址空间为32,目前它的所有都还未调入内。在模拟过程,如果所访问的指令已在内,则显示其物理地址,并转下一条指令。如果所访问的指令还未装入内,则发生缺,此时需要记录缺的次数,并将相应调入内。如果4个内块均已装入该作业,则需要进行面置换,最后显示其物理地址,并转向下一条指令。在所有320条指令执行完毕后,请计算并显示作业运行过程发生的缺率。 置换算法:请分别考虑最佳置换算法(OPT)、先进先出(FIFO)算法和最近最久未使用算法(LRU)。 作业指令的访问次序按下述原则生成: 50%的指令是顺序执行的; 25%的指令是均匀分布在前地址部分; 25%的指令是均匀分布在后地址部分; 具体的实施方法是:    在[0,319]的指令地址之间随机选取一起点m;    顺序执行下一条指令,即执行地址序号为m+1的指令;    通过随机数,跳转到前地址部分[0,m+1]的某条指令处,其序号为m1;    顺序执行下一条指令,其地址序号为m1+1的指令;    通过随机数,跳转到后地址部分[m1+2,319]的某条指令处,其序号为m2;    顺序执行下一条指令,其地址序号为m2+1的指令; 重复跳转到前地址部分,顺序执行,跳转到后地址部分,顺序执行的过程直至执行320条指令。
二、 实验内容1. 假设每个放10条指令,分配给作业的内块数为4。2. 用C语言或C++语言模拟一个作业的执行过程,该作业共有320条指令, 即它的地址空间为32,目前它的所有都还未调入内。再模拟过程,如果所访问的指令已在内,则显示其物理地址,并转下一条指令。如果所访问的指令还未装入内,则发生缺,此时需要记录缺的次数,并将相应调入内。如果4个内块均已装入该作业,则需要进行面置换,最后显示其物理地址,并转向下一条指令。在所有320条指令执行完毕后,请计算并显示作业运行过程发生的缺率。3. 置换算法:请分别考虑最佳置换算法(OPT)、先进先出(FIFO)算法和最近最久未使用算法(LRU)。4. 作业指令的访问次序按下述原则生成:50%的指令是顺序执行的;25%的指令是均匀分布在前地址部分;25%的指令是均匀分布在后地址部分;具体的实施方法是:(1):在[0,319]的指令地址之间随机选取一起点m;(2):顺序执行下一条指令,即执行地址序号为m+1的指令;(3):通过随机数,跳转到前地址部分[0,m+1]的某条指令处,其序号为m1;(4):顺序执行下一条指令,其地址序号为m1+1的指令;(5):通过随机数,跳转到后地址部分[m1+2,319]的某条指令处,其序号为m2;(6):顺序执行下一条指令,其地址序号为m2+1的指令;(7):重复跳转到前地址部分,顺序执行,跳转到后地址部分,顺序执行的过程直至执行320条指令。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值