- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
南京邮电大学实验报告模版-2解读
实 验 报 告
(2014 / 2015 学年 第 一 学期)
课程名称 计算机操作系统 实验名称 虚拟存储中页面置换算法的模拟实现 实验时间 2014 年 12 月 19 日 指导单位 南京邮电大学 指导教师 崔衍
学生姓名 班级学号 学院(系) 物联网院 专 业 网络工程
实 验 报 告
实验名称 虚拟存储中页面置换算法的模拟实现 指导教师 崔衍 实验类型 上机实验 实验学时 4 实验时间 2014.12.19 实验目的和要求
目的:
通过请求页式存储管理中页面置换算法模拟设计,
了解虚拟存储技术的技术特点,
掌握请求页式存储管理的页面置换算法
要求:
(1)设计实现下面算法,并输出下述各种算法的命中率。
①先进先出的算法(FIFO);
②最近最少使用算法(LRR);
③最佳淘汰算法(OPT)先淘汰最不常用的页地址。
(2)多次反复运行改进后的程序,观察并记录运行结果,并分析原因。 二、实验环境(实验设备)
Vc++6.0 实验原理及内容
实验三
#include iostream.h#includestdlib.h#includeconio.h#includestdio.h#define Bsize 4typedef struct BLOCK//声明一种新类型——物理块类型{ int pagenum;//页号 int accessed;//访问字段,其值表示多久未被访问}BLOCK; int pc;//程序计数器,用来记录指令的序号int n;//缺页计数器,用来记录缺页的次数 static int temp[320];//用来存储320条随机数BLOCK block[Bsize]; //定义一大小为4的物理块数组//*************************************************************void init( ); //程序初始化函数int findExist(int curpage);//查找物理块中是否有该页面int findSpace( );//查找是否有空闲物理块int findReplace( );//查找应予置换的页面void display ( );//显示void suijishu( );//产生320条随机数,显示并存储到temp[320]void pagestring( );//显示调用的页面队列void OPT( );//OPT算法void LRU( );// LRU算法void FIFO( );//FIFO算法//*************************************************************void init( ) { for(int i=0;iBsize;i++) { block[i].pagenum=-1; block[i].accessed=0; pc=n=0; }}//int findExist(int curpage){ for(int i=0; iBsize; i++) { if(block[i].pagenum == curpage ) return i;//检测到内存中有该页面,返回block中的位置 } return -1;}//int findSpace( ){ for(int i=0; iBsize; i++) { if(block[i].pagenum == -1) return i;//找到空闲的block,返回block中的位置 } return -1;}//int findReplace( ){ int pos = 0; for(int i=0; iBsize; i++) { if(block[i].accessed block[pos].accessed) pos = i;//找到应予置换页面,返回BLOCK中位置 } return pos;}//void display( ){ for(int i=0; iBsize; i++) { if(block[i].pagenum != -1) { printf( %02d,block[i].pagenum);} } coutendl;}//void suijishu( ){ int flag=0;
文档评论(0)