南京邮电大学实验报告模版Word格式文档下载.docx

上传人:b****3 文档编号:13601040 上传时间:2022-10-12 格式:DOCX 页数:19 大小:402.33KB
下载 相关 举报
南京邮电大学实验报告模版Word格式文档下载.docx_第1页
第1页 / 共19页
南京邮电大学实验报告模版Word格式文档下载.docx_第2页
第2页 / 共19页
南京邮电大学实验报告模版Word格式文档下载.docx_第3页
第3页 / 共19页
南京邮电大学实验报告模版Word格式文档下载.docx_第4页
第4页 / 共19页
南京邮电大学实验报告模版Word格式文档下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

南京邮电大学实验报告模版Word格式文档下载.docx

《南京邮电大学实验报告模版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《南京邮电大学实验报告模版Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。

南京邮电大学实验报告模版Word格式文档下载.docx

学生姓名

班级学号

学院(系)

物联网院

专业

网络工程

实验类型

上机实验

实验学时

4

2014.12.19

一、实验目的和要求

目的:

通过请求页式存储管理中页面置换算法模拟设计,

了解虚拟存储技术的技术特点,

掌握请求页式存储管理的页面置换算法

要求:

(1)设计实现下面算法,并输出下述各种算法的命中率。

①先进先出的算法(FIFO);

②最近最少使用算法(LRR);

③最佳淘汰算法(OPT)先淘汰最不常用的页地址。

(2)多次反复运行改进后的程序,观察并记录运行结果,并分析原因。

二、实验环境(实验设备)

Vc++6.0

二、实验原理及内容

实验三

#include<

iostream.h>

#include<

stdlib.h>

conio.h>

stdio.h>

#defineBsize4

typedefstructBLOCK//声明一种新类型——物理块类型

{

intpagenum;

//页号

intaccessed;

//访问字段,其值表示多久未被访问

}BLOCK;

intpc;

//程序计数器,用来记录指令的序号

intn;

//缺页计数器,用来记录缺页的次数

staticinttemp[320];

//用来存储320条随机数

BLOCKblock[Bsize];

//定义一大小为4的物理块数组

//*************************************************************

voidinit();

//程序初始化函数

intfindExist(intcurpage);

//查找物理块中是否有该页面

intfindSpace();

//查找是否有空闲物理块

intfindReplace();

//查找应予置换的页面

voiddisplay();

//显示

voidsuijishu();

//产生320条随机数,显示并存储到temp[320]

voidpagestring();

//显示调用的页面队列

voidOPT();

//OPT算法

voidLRU();

//LRU算法

voidFIFO();

//FIFO算法

voidinit()

for(inti=0;

i<

Bsize;

i++)

{

block[i].pagenum=-1;

block[i].accessed=0;

pc=n=0;

}

}

//-------------------------------------------------------------

intfindExist(intcurpage)

{

i<

i++)

if(block[i].pagenum==curpage)

returni;

//检测到内存中有该页面,返回block中的位置

return-1;

intfindSpace()

if(block[i].pagenum==-1)

//找到空闲的block,返回block中的位置

}

intfindReplace()

intpos=0;

if(block[i].accessed>

block[pos].accessed)

pos=i;

//找到应予置换页面,返回BLOCK中位置

returnpos;

voiddisplay()

if(block[i].pagenum!

=-1)

{printf("

%02d"

block[i].pagenum);

cout<

<

endl;

voidsuijishu()

{intflag=0;

cin>

>

pc;

"

******按照要求产生的320个随机数:

*******"

320;

i++)

{

temp[i]=pc;

if(flag%2==0)pc=++pc%320;

if(flag==1)pc=rand()%(pc-1);

if(flag==3)pc=pc+1+(rand()%(320-(pc+1)));

flag=++flag%4;

printf("

%03d"

temp[i]);

if((i+1)%10==0)cout<

voidpagestring()

temp[i]/10);

voidOPT()

intexist,space,position;

intcurpage;

if(i%100==0)getch();

pc=temp[i];

curpage=pc/10;

exist=findExist(curpage);

if(exist==-1)

space=findSpace();

if(space!

block[space].pagenum=curpage;

display();

n=n+1;

else

for(intk=0;

k<

k++)

for(intj=i;

j<

j++)

if(block[k].pagenum!

=temp[j]/10)

block[k].accessed=1000;

}//将来不会用,设置为一个很大数

block[k].accessed=j;

break;

position=findReplace();

block[position].pagenum=curpage;

n++;

缺页次数:

n<

缺页率:

(n/320.0)*100<

%"

//-------------------------------------------------------------

voidLRU()

space=findSpace();

elseblock[exist].accessed=-1;

//恢复存在的并刚访问过的BLOCK中页面accessed为-1

for(intj=0;

j<

4;

j++)

{block[j].accessed++;

voidFIFO()

block[position].accessed--;

block[j].accessed++;

//*****************************************

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1