- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统页式虚拟存储管理程序模拟
实 验3: 页式虚拟存储管理程序模拟
实验目的: 编写程序来模拟计算机的两种调度方式:
(1)先进先出算法
(2)最近最少使用算法
程序设计
FIFO页面置换算法
1在分配内存页面数(AP)小于进程页面数(PP)时,当然是最先运行的AP个页面放入内存。
2这时有需要处理新的页面,则将原来内存中的AP个页面最先进入的调出(是以称为FIFO),然后将新页面放入。
3以后如果再有新页面需要调入,则都按2的规则进行。
算法特点:所使用的内存页面构成一个队列。
LRU页面置换算法
1当分配内存页面数(AP)小于进程页面数(PP)时,当然是把最先执行的AP个页面放入内存。
2当需要调页面进入内存,而当前分配的内存页面全部不空闲时,选择将其中最长时间没有用到的那个页面调出,以空出内存来放置新调入的页面(称为LRU)。
算法特点:每个页面都有属性来表示有多长时间未被CPU使用的信息。
结果分析
#includeiostream
#includetime.h
using namespace std;
const int MaxNum=320;//指令数
const int M=5;//内存容量
int PageOrder[MaxNum];//页面请求
int Simulate[MaxNum][M];//页面访问过程
int PageCount[M],LackNum;//PageCount用来记录LRU算法中最久未使用时间,LackNum记录缺页数
float PageRate;//命中率
int PageCount1[32];
bool IsExit(int i)//FIFO算法中判断新的页面请求是否在内存中
{ bool f=false;
for(int j=0;jM;j++)
{if(Simulate[i-1][j]==PageOrder[i])//在前一次页面请求过程中寻找是否存在新的页面请求
{ f=true; }
}
return f;
}
int IsExitLRU(int i)//LRU算法中判断新的页面请求是否在内存中
{ int f=-1;
for(int j=0;jM;j++)
{if(Simulate[i-1][j]==PageOrder[i])
{ f=j; }
}
return f;
}
int Compare()//LRU算法找出内存中需要置换出来的页面
{ int p,q;
p=PageCount[0];
q=0;
for(int i=1;iM;i++)
{if(pPageCount[i])
{p=PageCount[i];
q=i; }
}
return q;
}
void Init() //初始化页框
{ for(int k=0;kMaxNum;k++)
{ int n=rand()%320;//随机数产生320次指令
PageOrder[k]=n/10;//根据指令产生320次页面请求}
for(int i=0;iMaxNum;i++)//初始化页面访问过程
{ for(int j=0;jM;j++)
{ Simulate[i][j]=-1; }
}
for(int q=0;qM;q++)//初始化最久未使用数组
{PageCount[q]=0; }
}
void OutPut()//输出
{ int i,j;
cout页面访问序列:endl;
for(j=0;jMaxNum;j++)
{coutPageOrder[j] ;}
coutendl;
cout页面访问过程(只显示前10个):endl;
for(i=0;i10;i++)
{ for(j=0;jM;j++)
{ if(Simulate[i][j]==-1)
cout ;
else
coutSimulate[i][j] ;
}
coutendl;
}
cout缺页数= LackNumendl;
cout命中率= PageRateendl;
coutendl;
}
void FIFO()//FIFO算法
{ int j,x=0,y=0;
LackNum=0,
Init();
for(j=0;jM;j++)//将前五个页面请求直接放入内存中
{ for(int k=0;k=j;k++)
{ if(j==k)
Simulate[j][k]=PageOrder[j];
else
Simulate[j][k]=Simulate[j-1][k];
}
//LackNum++;
}
for(x=M
您可能关注的文档
最近下载
- 万通国际贸易有限公司财务报表分析案例.pdf
- 2025广西专业技术人员公需科目培训考试答案(87分)广西一区两地一园一通道建设人工智能时代.docx VIP
- .公路工程基本建设项目设计文件编制办法.pdf VIP
- 都江堰市西区改扩建水厂取水泵房拆泵及新安装水泵专项方案.doc VIP
- 小学数学课堂中数学思维可视化的应用研究教学研究课题报告.docx
- 社区文化活动中心建设工程项目建议书.docx VIP
- 机械原理课程设计垫圈内径检测装置..doc VIP
- 安顺《建筑信息模型(BIM)》建模练习3:绘制门窗和楼板练习(5分,需辅导教师评阅).pdf VIP
- 特种设备使用安全风险日管控、周排查、月调度管理制度(模板)附表.docx VIP
- 钢铁行业行业主要节水技术、生产工艺流程、水平衡图和表.docx VIP
文档评论(0)