浙江理工大学操作系统实验三页面置换算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作系统实验报告

班级:计算机科学与技术三班姓名:李生启学号:2013329620077

实验三:页面置换算法

一、实验目的

1、熟悉内存分页管理策略。

2、编写OPT、FIFO、LRU,LFU四种置换算法并模拟实现。

3、锻炼知识的运用能力和实践能力。

二、实验内容

设计主界面,输入一串系列模拟页面请求,实现以下算法:

1) 最佳置换算法(OPT):将以后永不使用的或许是在最长(未来)时间内不再被访问的页面换出。

2) 先进先出算法(FIFO):淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。

3) 最近最久未使用算法(LRU):淘汰最近最久未被使用的页面。

4) 最不经常使用算法(LFU)

三、代码及运行结果分析

1.代码:(采用C++,环境:VS2010)

#include

#include

#include

#include

using namespace std;

void OPT(int count)

{

int all[50];

int bracket[3];

int bll[50]={0};

ifstream fin("abc.txt");

if( fin.is_open() )

{

for(int i=0;i

{

fin>>all[i];

}

fin.close();

}

bracket[0]=all[0];

bracket[1]=all[1];

bracket[2]=all[2];

for(int i=0;i

{

if(i<3)

{

if(i==0)

{

cout<<"当前序列:"<

cout<

}

if(i==1)

{

cout<<"当前序列:"<

cout<

}

if(i==2)

{

cout<<"当前序列:"<

cout<

}

}

if(i>=3)

{

int a_num=count+1;

int b_num=count+1;

int c_num=count+1;

int qi=0;

for(int x=0;x<3;x++)

{

if(bracket[x]==all[i])

{

cout<<"当前序列:"<

cout<

qi=6;

break;

}

}

if(qi==0)

{

for(int e=i+1;e

if(bracket[0]==all[e])

{

a_num=e;break;

}

}

for(int e=i+1;e

{

if(bracket[1]==all[e])

{

b_num=e;break;

}

}

for(int e=i+1;e

{

if(bracket[2]==all[e])

{

c_num=e;break;

}

}

}

if((a_num>=b_num)&&(a_num>=c_num))bracket[0]=all[i];

else

if((b_num>=a_num)&&(b_num>=c_num))bracket[1]=all[i];

else

if((c_num>=b_num)&&(c_num>=a_num))bracket[2]=all[i];

cout<<"当前序列:"<

cout<

}

}

}

void FIFO(int count)

{

int bll[50]={0};

int all[50];

int top=0;

ifstream fin("abc.txt");

if( fin.is_open() )

{

for(int i=0;i

{

fin>>all[i];

}

fin.close();

}

for(int i=0;i

{

if(top<3)

{

bll[top]=all[i];

top++;

if(top==1)

{

cout<<"当前序列:"<

cout<

}

if(top==2)

{

cout<<"当前序列:"<

cout<

}

相关文档
最新文档