南京邮电大学实验报告模版 2南京邮电大学实验报告模版 2.doc

南京邮电大学实验报告模版 2南京邮电大学实验报告模版 2.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实 验 报 告 (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 4 typedef 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 fl

您可能关注的文档

文档评论(0)

cduutang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档