存储管理-请求页式管理中页面置换算法模拟设计

文章通过模拟页式管理中的页面置换算法,对比了FIFO(先进先出)和LRU(最近最少使用)两种算法在不同内存容量下的性能。分析显示,随着内存容量增加,命中率提升,尤其在内存容量为32时,命中率接近90%。在小内存容量下,FIFO通常表现优于LRU,而大内存时,LRU的命中率更高。
摘要由CSDN通过智能技术生成

目录

目标

具体设计:

要求

分析

代码实现

运行结果

算法命中率比较


目标

通过请求页式管理中页面置换算法模拟设计,计算并输出下属算法在不同内存容量下的命中率,比较算法优劣。

1)先进先出的算法(FIFO);

2)最近最少使用算法(LRU);

具体设计:

要求

a、 终端先显示:

Start memory management.

Producing address flow, wait for while, please.

b、 地址流、地址页号流生成后,终端显示:

There are algorithms in the program

1、 Optimization algorithm

2、 Least recently used algorithm

Select an algorithm number, please.

用户输入适当淘汰算法的号码,并按回车,若是第一次选择,输出相应的

地址页号流。然后输出该算法分别计算的用户内存从 2k~32k 时的命中率,

若输入的号码不再 1~2 中,则显示:

there is not the algorithm in the program,并重复 b。

c、 输出结果后,终端显示 “do you try again with anther algorithm(y/n)”。若键

入 y 则重复 b,否则结束

分析

使指令的地址按下述原则生成:

1) 50%的指令是顺序执行的

2)25%的指令是均匀分布在前地址部分

3)25%的指令是均匀分布在后地址部分

解决方案:

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

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

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

4)顺序执行一条指令,地址为 m’+1 的指令

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

6) 重复上述步骤 1)~5),直到执行 320 次指令

public void commandSequence() {
	Random rand=new Random();
		int i=0;	
		while(i<320) {
			int m=rand.nextInt(320);		
			num[i++]=m+1;
			int m1=rand.nextInt(m+1);
			num[i++]=m1;
			num[i++]=m1+1;
			if(m1<317) {
			int m2=rand.nextInt(317-m1)+m1+2;
			num[i++]=m2;}
		}

FIFO

。。。。。。。

LRU

。。。。。

代码实现

。。。。。

运行结果

f6672d67e3684b54a3d9e1df00d33d00.png

 71d0dcac9c9e4842aeff796504d67c5f.png      bb3c2596810d4763b0fbb5b22ab75598.png

 f584f8e0e3b64414ac82f733a50fb0b0.png                    2cc9634e31324110bb5073e124387e4a.png

      aa20d55e8c9b449c849ffa5ca80a7a82.png                           739bab32086243a780806b336e401954.png

算法命中率比较

当用户的内存容量(物理块大小)增加时,命中率也随之增加,到内存容量32的时候,基本在90%的命中率。

比较下来内存容量在20左右以下的时候,FIFO命中率大多更高些,以上的话,LRU更高些;

欲取完整报告某闲某与搜索用户脆脆鲨嘞查看,感谢支持!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

42341352315125115

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值