- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统实验报告
班级: 姓名: 学号:
实验三:页面置换算法
实验目的
1、熟悉内存分页管理策略。
2、编写OPT、FIFO、LRU,LFU四种置换算法并模拟实现。
3、锻炼知识的运用能力和实践能力。
实验内容
设计主界面,输入一串系列模拟页面请求,实现以下算法:
1) 最佳置换算法(OPT):将以后永不使用的或许是在最长(未来)时间内不再 被访问的页面换出。
2) 先进先出算法(FIFO):淘汰最先进入内存的页面,即选择在内存中驻留 时间最久的页面予以淘汰。
3) 最近最久未使用算法(LRU):淘汰最近最久未被使用的页面。
4) 最不经常使用算法(LFU)
代码及运行结果分析
#include stdio.h
#include stdlib.h
int mSIZE;
int pSIZE;
static int memery[10]={0};
static int page[100]={0};
static int temp[100][10]={0};
void FIFO();
void LRU();
void OPT();
void print(unsigned int t);
void read();
void mDelay(unsigned int Delay);
int main()
{
int i,k,code;
printf(请输入物理块的个数(M=10):);
scanf(%d,mSIZE);
printf(请输入页面号引用串的个数(P=100):);
scanf(%d,pSIZE);
puts(请依次输入页面号引用串:);
for(i=0;ipSIZE;i++)
scanf(%1d,page[i]);
read();
do{
puts(输入的页面号引用串为:);
for(k=0;k=(pSIZE-1)/20;k++)
{
for(i=20*k;(ipSIZE)(i20*(k+1));i++)
{
if(((i+1)%20==0)||(((i+1)%20)(i==pSIZE-1)))
printf(%d\n,page[i]);
else
printf(%d ,page[i]);
}
}
printf(\n);
printf(* 请选择页面置换算法:\t\t\t *\n);
printf(* *\n);
printf(* 1.先进先出(FIFO) 2.最近最久未使用(LRU) *\n);
printf(* 3.最佳(OPT) 4.退出 *\n);
printf(\n);
printf(请选择操作:[ ]\b\b);
scanf(%d,code);
switch(code)
{
case 1:
FIFO();
break;
case 2:
LRU();
break;
case 3:
OPT();
break;
case 4:
system(cls);
exit(0);
default:
printf(输入错误,请重新输入:);
}
printf(按任意键重新选择置换算法:);
getchar();
}while (code!=4);
getchar();
}
void read()
{
int i;
for(i=0;i51;i++)
printf(\b);
for(i=0;i50;i++) {
mDelay((pSIZE+mSIZE)/2);
printf(); }
printf(获取成功,按任意键进入置换算法选择界面:);
getchar(); }
void mDelay(unsigned int Delay)
{
unsigned int i;
for(;Delay0;Delay--)
{
for(i=0;i124;i++)
{
printf( \b);
}
}
}
void print(unsigned int t) {
int i,j,k,l;
int flag;
for(k=0;k=(pSIZE-1)/20;k++)
{
for(i=20*k;(ipSIZE)(i20*(k+1));i++)
{
if(((i+1)%20==0)||(((i+1)%20)(i==pSIZE-1)))
printf(%d\n,page[i]);
else
printf( %d ,page[i]);
}
for(j=0;jmSIZE;j++)
{
for(i=20*k;(imSIZE+20*k)(ipSIZE);i++) {
if(i=j)
printf( |%d|,t
您可能关注的文档
最近下载
- 《市政排水管道气囊封堵施工规程》.pdf
- TOPRAAD920印刷模切开槽机.pdf VIP
- 单相整流电路建模与仿真.doc VIP
- 缺血性脑血管病临床管理指南解读.pptx VIP
- 工程概算预算审核方案(3篇).docx VIP
- 神经重症气管切开患者气道功能康复与管理专家共识2024.pptx VIP
- 2025年监理工程师之监理概论考试题库及答案(名师系列).docx VIP
- 2025年监理工程师之监理概论押题练习试卷B卷附答案 .pdf VIP
- 2025年监理工程师之监理概论考试题库及完整答案(必刷).docx VIP
- 2025年监理工程师之监理概论押题练习试卷A卷附答案 .pdf VIP
文档评论(0)