- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
姓名 课程名称 操作系统
学时
学号 开课学期 2016-2017 (2 )
实验室 软件实验室 1 指导教师
实验项目 实验时间
通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技
的特点,掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想
实验目的 和实现过程,并比较它们的效率。
实验环境 Red Hat Enterprise Linux
1、实验内容
1、通过随机数产生一个指令序列,共 320 条指令。指令的地址按下述原则生成:
实 A :50%的指令是顺序执行的
验 B :25% 的指令是均匀分布在前地址部分
C :25% 的指令是均匀分布在后地址部分
过
2 、将指令序列变换为页地址流
程
设:页面大小为 1K;
及
用户内存容量 4 页到 32 页;
结 用户虚存容量为 32K 。
果 在用户虚存中,按每 K 存放 10 条指令排列虚存地址,即 320 条指令在虚存中的
存放方式为:
第 0 条-第 9 条指令为第 0 页(对应虚存地址为[0,9] )
第 10 条-第 19 条指令为第 1 页(对应虚存地址为[10,19])
………………………………
第 310 条-第 319 条指令为第 31 页(对应虚存地址为[310,319] )
3、计算并输出下述算法在不同内存容量下的命中率。
1)最佳淘汰算法(OPT )
2 )先进先出的算法(FIFO )
3 )最近最久未使用算法(LRU )
命中率=(1-页面失效次数)/页地址流长度
实验流程图
核心代码
/*先进先出算法 total_pf:用户进程的内存页面数*/
int FIFO(int total_pf)
{
int i,j;
pfc_type *p; /*中间变量*/
initialize(total_pf); /*初始化相关页面控制用数据结构*/
busypf_head=busypf_tail=NULL; /*忙页面队列头,队列尾链接*/
for(i=0;itotal_instruction;i++)
{
if(pl[page[i]].pfn==INVALID) /*页面失效*/
{
diseffect+=1; /*失效次数*/
if(freepf_head==NULL) /*无空闲页面*/
{
p=busypf_head-next;
pl[busypf_head-pn].pfn=INVALID;
freepf_head=busypf_head; /*释放忙页面队列的第一个页面*/
freepf_head-next=NULL; /*表明还是缺页*/
busypf_head=p;
}
p=freepf_head-next; /*按照 FIFO 方式调新页面入内存页面
*/
freepf_head-next=NULL;
freepf_head-pn=page[i];
pl[page[i]].pfn=freepf_head-pfn;
if(bus
文档评论(0)