实验五虚拟内存页面置换算法Word格式文档下载.docx

上传人:b****3 文档编号:7184486 上传时间:2023-05-08 格式:DOCX 页数:16 大小:44.39KB
下载 相关 举报
实验五虚拟内存页面置换算法Word格式文档下载.docx_第1页
第1页 / 共16页
实验五虚拟内存页面置换算法Word格式文档下载.docx_第2页
第2页 / 共16页
实验五虚拟内存页面置换算法Word格式文档下载.docx_第3页
第3页 / 共16页
实验五虚拟内存页面置换算法Word格式文档下载.docx_第4页
第4页 / 共16页
实验五虚拟内存页面置换算法Word格式文档下载.docx_第5页
第5页 / 共16页
实验五虚拟内存页面置换算法Word格式文档下载.docx_第6页
第6页 / 共16页
实验五虚拟内存页面置换算法Word格式文档下载.docx_第7页
第7页 / 共16页
实验五虚拟内存页面置换算法Word格式文档下载.docx_第8页
第8页 / 共16页
实验五虚拟内存页面置换算法Word格式文档下载.docx_第9页
第9页 / 共16页
实验五虚拟内存页面置换算法Word格式文档下载.docx_第10页
第10页 / 共16页
实验五虚拟内存页面置换算法Word格式文档下载.docx_第11页
第11页 / 共16页
实验五虚拟内存页面置换算法Word格式文档下载.docx_第12页
第12页 / 共16页
实验五虚拟内存页面置换算法Word格式文档下载.docx_第13页
第13页 / 共16页
实验五虚拟内存页面置换算法Word格式文档下载.docx_第14页
第14页 / 共16页
实验五虚拟内存页面置换算法Word格式文档下载.docx_第15页
第15页 / 共16页
实验五虚拟内存页面置换算法Word格式文档下载.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验五虚拟内存页面置换算法Word格式文档下载.docx

《实验五虚拟内存页面置换算法Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实验五虚拟内存页面置换算法Word格式文档下载.docx(16页珍藏版)》请在冰点文库上搜索。

实验五虚拟内存页面置换算法Word格式文档下载.docx

intTime[MaxNumber];

intSimulate[MaxNumber][MaxNumber];

intPageCount[MaxNumber];

intPageNum,LackNum,PageMin;

doubleLackPageRate;

boolfound;

2)页面置换的实现过程如下:

Ø

变量初始化;

接收用户输入最小物理块数m,页面个数n,页面序列P1,…,Pn,选择算法1-FIFO,2-OPI,3-LRU;

根据用户选择的算法进行页面的分配和置换,输出页面置换算法的模拟过程;

计算选择算法的缺页次数和缺页率;

输出选择算法的缺页次数和缺页率。

三:

概要设计

输入函数voidinput()

初始化函数voidInitial()

显示函数voidshow()

先进先出算法的函数voidFIFO()

最佳置换算法的函数voidOPI()

最近最久未使用置换算法voidLRU()

主函数voidmain()

{

input();

ints=0;

while(s!

=4)

{

cout<

<

"

请选择算法:

endl;

1:

先进先出;

2:

最佳值换算法;

3:

最近最久未使用置换算法;

4:

退出"

cin>

>

s;

switch(s)

{

case1:

FIFO();

show();

break;

case2:

OPI();

case3:

LRU();

case4:

return;

default:

cout<

输入数字不对,请重新输入:

;

}

}

}

四:

结果测试和截图以及说明

输入:

页面个数20

页面数列70120304230321201701

系统为进程分配的物理块:

3

输出结果如截图所示:

先进先出算法:

2.最佳置换算法

3.LRU算法

说明:

—1表示的是物理块中没有页面。

相邻的相同的也同时表示出来了并没有空出。

五:

源代码

#include<

iostream.h>

//usingnamespacestd;

constintMaxNumber=100;

//输入

voidinput()

cout<

请输入页面个数:

(PageNum)"

cin>

PageNum;

while(PageNum>

MaxNumber)

页面个数太大,请重新输入:

请输入页面序列:

for(inti_PageOrder=0;

i_PageOrder<

i_PageOrder++)

PageOrder[i_PageOrder];

请输入系统分配的最小页面个数:

(PageMin)"

PageMin;

while(PageMin>

//先进先出页面置换算法

voidInitial()

for(inti_Time=0;

i_Time<

i_Time++)

Time[i_Time]=PageNum;

for(inti_Simulate=0;

i_Simulate<

i_Simulate++)

for(intj_Simulate=0;

j_Simulate<

j_Simulate++)

Simulate[i_Simulate][j_Simulate]=-1;

LackNum=0;

LackPageRate=0;

found=true;

voidshow()

for(inti=0;

i<

i++)

PageOrder[i]<

:

"

for(intk=0;

k<

k++)

Simulate[i][k]<

LackPageRate=double(LackNum)/double(PageNum);

缺页数:

LackNum<

缺页率:

LackPageRate<

voidFIFO()

Initial();

inti=0;

//指示PageOrder[]的序号

intj=0;

//指示PageCount[]中要替换的序号

intk=0;

for(i=0;

PageCount[i]=PageOrder[i];

for(k=0;

=i;

Simulate[i][k]=PageCount[k];

LackNum++;

for(;

k=0;

found=false;

while(k<

PageMin&

&

(!

found))

if(PageCount[k]==PageOrder[i])

{

found=true;

break;

}

else

k++;

if(!

found)

PageCount[j]=PageOrder[i];

LackNum++;

j++;

j=j%PageMin;

voidOPI()

intnum=i+1;

//用来找刚刚换进的页面数在后面出现的位置

while(num<

PageNum)

if(PageCount[i]==PageOrder[num])

Time[i]=num;

num++;

if(num==PageNum)

j=k;

j=0;

for(k=0;

if(Time[k]>

Time[j])

j=k;

PageCount[j]=PageOrder[i];

if(PageCount[j]==PageOrder[num])

Time[j]=num;

Time[j]=num;

voidLRU()//最近最久未使用置换算法

Time[i]=0;

Time[k]++;

Time[j]=0;

//主函数

voidmain()

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 育儿理论经验

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2