C++模拟LRU页面置换算法
更新时间:2023-06-06 09:07:01 阅读量: 实用文档 文档下载
- 页面置换算法模拟推荐度:
- 相关推荐
实验五 C++模拟LRU页面置换算法
一、实验目的:用c++模拟LRU页面置换算法
二、实验内容:随机一访问串和驻留集的大小,通过模拟程序显示淘汰的页号并统计命中率。示例:
输入访问串:7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1
驻留集大小:3
算法的实现:由于LRU算法淘汰的是上次使用距离t时刻最远的页,故需记录这个距离。
计数器:可使用计数器,给每一个页帧增设一个计数器。每访问一页,就把对应页帧的计数器清零,其余页帧的计数器加1.因此,计数器值为最大的页即上次访问距当前最远的页。
7 0 1 2 0 3 0 4 2 3 0 3 2 0/7 1/7 2/7 0/2 1/2 2/2 3/2 0/4 1/4 2/4 0/0 1/0 2/0 0/0 1/0 2/0 0/0 1/0 0/0 1/0 2/0 0/3 1/3 0/31/3 0/1 1/1 2/1 0/3 1/3 2/3 0/2 1/2 2/2 3/2 0/2 缺 缺 缺 缺 命 缺 命 缺 缺 缺 缺 命 命
红色表示:每个页帧对应的计数器值
通过模拟程序输出淘汰的页号分别为:7 1 2 3 0 4 命中率为:4/13
四、代码:
#include <iostream>
using namespace std;
struct node
{
char data;
int time;
};
void init(char str[],int n,struct node zhuliuji[],int m) {
for(int i = 0;i<m;i++)
{
zhuliuji[i].data = '\0';
zhuliuji[i].time = 0;
}
for(int i =0;i<n;i++)
{
cin>>str[i];
}
}
void addtime(struct node zhuliuji[],int m) {
for(int i=0;i<m;i++)
{
zhuliuji[i].time++;
}
}
char addzhuliuji(struct node zhuliuji[],int m,char c) {
char ch = '\0';
int max = zhuliuji[0].time;
int temp = 0; //标记时间最长的驻留级 for(int i=0;i<m;i++)
{
if(max<zhuliuji[i].time&&zhuliuji[i].data!=c) {
max = zhuliuji[i].time;
temp = i;
}
if(zhuliuji[i].data==c)
{
zhuliuji[i].time =0;
// cout<<"zhuliuji存在"<<c<<endl; return ch;
}
}
ch = zhuliuji[temp].data;
zhuliuji[temp].data = c;
zhuliuji[temp].time = 0;
return ch;
}
void LRU(char str[],int n,struct node zhuliuji[],int m) {
int jtemp=0;
for(int i =0;i<n;i++)
{
if(i<m)
{
zhuliuji[jtemp].data = str[i]; addtime(zhuliuji,m);
zhuliuji[jtemp].time = 0;
jtemp ++;
}else
{
addtime(zhuliuji,m);
char ch = addzhuliuji(zhuliuji,m,str[i]); // if(ch!='\0')
//cout<<"淘汰的页数为:"<<ch<<endl; }
cout<<"驻留级为:";
for(int j=0;j<m;j++)
{
cout<<zhuliuji[j].data<<'\t'; }
cout<<endl;
}
cin>>jtemp; //显示结果,以便观察 }
int main()
{
struct node zhuliuji[20];
char str[20];
int n,m;
cout<<"请输入访问串的大小:"<<endl; cin>>n;
cout<<"请输入驻留级大小:"<<endl; cin>>m;
cout<<"请输入访问串的内容:"<<endl; init(str,n,zhuliuji,m);
LRU(str,n,zhuliuji,m);
return 0;
}
五.运行结果
正在阅读:
C++模拟LRU页面置换算法06-06
形式主义官僚主义十种表现自查报告04-18
初三语文知识点梳理03-25
毕业设计说明书-CA6140机床后托架加工工艺及夹具设计09-06
老师我爱你手抄报图片02-12
第7课 辛亥革命04-07
史上最全:LoadRunner - 11负载生成及监控Controller11-26
20m后张法预应力箱梁预制技术交底12-18
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- C++
- 置换
- 算法
- 模拟
- 页面
- LRU
- 1.1~1.2.2有理数练习题
- 江西省征收排污费暂行实施办法
- 中老年活动中心设计方案
- 中国咨询培训行业—20多种盈利模式
- 六年级下册 大象版科学总复习
- 二年级品德与生活《家里来了客》教后反思
- 重庆市江津市(实验中学、李市中学、白沙中学)三校联考九年级化学下学期期中试题(含解析) 新人教版
- 130余种常见植物图片(整理)
- 2012年北京中考各区县一模化学实验题探究题汇编
- 全国报社杂志社投稿方式精选(散文。随笔类)
- 女生节活动策划书
- 奔驰600SEL轿车无怠速故障一例
- 软件互联网项目业务需求说明书(模板)
- 名班主任工作室三年规划
- 二元一次方程组和它的解的教案
- 伊利集团2010年财务报表分析
- 前期市场分析报告模板
- 考研英语知识运用
- 2013年福建省中学生生物学竞赛初赛试卷
- 第四单元 正确使用词语(实词.虚词)