版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验报告班级: 系统本111 学号: 2011415108 姓名: 张国锋日期: 2013.6.27 实验题目模拟分页式虚拟存储管理实验。2实验要求编写一段程序来模拟页面置换算法。要求能分别显示最佳(optimal)置换算法、先进先出(fifo)页面置换算法和最近最久未使用(lru)置换算法的置换过程。3. 实验目的通过本实验帮助学生理解虚拟存储器的工作方法。了解分页式存储管理里中各页面置换算法是怎样实现的,各算法有怎样的优缺点。 实验原理分析页面置换算法是在分页存储管理方式中为了合理的将进程运行所需的页面调入内存而产生的算法。一个好的页面转换算法,应具有较低的页面更换频率。最常见的页面置换算
2、法有最佳(optimal)置换算法、先进先出(fifo)页面置换算法和最近最久未使用(lru)置换算法。算法的说明最佳置换算法:选择以后永不使用或是在最长时间内不再被访问的页面作为被淘汰的页面。这种算法通常可保证获得最低的缺页率,但因为内存中哪个页面是以后永不使用的是无法预知的,所以该算法是无法实现的。先进先出页面置换算法:选择内存中驻留时间最长的页面作为被淘汰的页面。该算法实现简单,只需将调入内存中的页面链成一个队列,并设置一个指针指向最老的页面即可。最近最久未使用置换算法:选择最近最久未使用的页面作为被淘汰的页面。该算法需要为每个页面设置一个访问字段用来记录页面上次被访问的时间,通过这个时
3、间来决定淘汰哪一个页面。主要变量及函数说明如表1所示表1 主要变量及函数说明表pra(void)初始化int findspace(void)查找是否有空闲内存int findexist(int curpage)查找内存中是否有该页面int findreplace(void)查找应予置换的页面void display(void)显示void fifo(void)fifo算法void lru(void)lru算法void optimal(void)optimal算法void blockclear(void)block恢复struct pageinfor * block物理块struct pagei
4、nfor * page页面号串5. 实验代码清单#include #include #include #define bsize 3#define psize 20struct pageinfor int content;/*页面号*/ int timer;/*被访问标记*/;void pra();/*初始化*/int findspace();/*查找是否有空闲内存*/int findexist(int curpage);/*查找内存中是否有该页面*/int findreplace();/*查找应予置换的页面*/void display();/*显示*/void fifo();/*fifo算法
5、*/void lru();/*lru算法*/void optimal();/*optimal算法*/void blockclear();/*block恢复*/struct pageinfor * block;/*物理块*/struct pageinfor * page;/*页面号串*/int qstring20;void pra() int i,n;printf(请输入页面号引用串:n);for(i=0;i20;i+)scanf(%d,&qstringi);printf(您输入页面号引用串为:n);printf(=n);for(i=0;i20;i+)printf(%dt,qstringi);p
6、rintf(=n);block=(struct pageinfor *)malloc(sizeof(struct pageinfor);for(i=0; ibsize; i+) blocki.content = -1;blocki.timer = 0;page = (struct pageinfor *)malloc(sizeof(struct pageinfor)*psize);for(i=0; ipsize; i+) pagei.content = qstringi;pagei.timer = 0;int findspace()int i=0;for(i=0; ibsize; i+)if(
7、blocki.content = -1)return i;/*找到空闲内存,返回block中位置*/return -1;int findexist(int curpage)int i=0;for(i=0; ibsize; i+)if(blocki.content = pagecurpage.content)return i;/*找到内存中有该页面,返回block中位置*/return -1;int findreplace()int pos = 0,i;for(i=0; i= blockpos.timer)pos = i;/*找到应予置换页面,返回block中位置*/return pos;voi
8、d display()int i=0;for(i=0; ibsize; i+)if(blocki.content != -1)printf(%dt,blocki.content);printf(n);void optimal()int exist,space,position,i,k,j ;for(i=0; ipsize; i+) exist = findexist(i);if(exist != -1) printf(不缺页n);else space = findspace();if(space != -1) blockspace = pagei;display();else for(k=0;
9、 kbsize; k+)for(j=i; jpsize; j+) if(blockk.content != pagej.content) blockk.timer = 1000;else blockk.timer = j;break;position = findreplace();blockposition = pagei;display();getch();system(cls);void lru()int exist,space,position,i,k,j ;for(i=0; ipsize; i+) exist = findexist(i);if(exist != -1) printf
10、(不缺页n);blockexist.timer = -1; else space = findspace();if(space != -1) blockspace = pagei;display();else position = findreplace();blockposition = pagei;display();for(j=0; jbsize; j+)blockj.timer+;getch();system(cls);void fifo()int exist,space,position,i,k,j ;for(i=0; ipsize; i+) exist = findexist(i)
11、;if(exist != -1) printf(不缺页n);else space = findspace();if(space != -1) blockspace = pagei;display();else position = findreplace();blockposition = pagei;display();for(j=0; jbsize; j+)blockj.timer+;/*block中所有页面timer+*/getch();system(cls);void blockclear()/清空页面信息int i;for(i=0; ibsize; i+) blocki.conten
12、t = -1;blocki.timer = 0;void main() pra();system(color 2); int select=1;while(select) printf(系统本111项静怡小组页面置换算法程序n);printf(请按以下菜单选择:n);printf(1toptimalt算法n);printf(2tfifot算法n);printf(3tlrut算法n);printf(0t退出n);scanf(%d,&select);switch(select) case 0:break;case 1:printf(optimal算法结果如下:n);optimal();break;
13、case 2:printf(fifo算法结果如下:n);fifo();break;case 3:printf(lru算法结果如下:n);lru();break;default:printf(菜选项输入错误,请输入(1,2,3,0)n);break;blockclear();6. 实现输入课本中例题数据,创建3个物理模块,页面引用串为7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1运行界面如图1所示图1 输入用最佳置换算法,运行后如图2所示图2 optinal算法用fifo先进先出算法运行后如图3所示图3 fifo算法用lru最久未使用算法,运行后如图4所示图4 l
14、ru算法袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄
15、螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水平定向钻机司机标准化评优考核试卷含答案
- 家用视频产品维修工安全演练水平考核试卷含答案
- 经编工工作标准化强化考核试卷含答案
- 化工蒸馏工安全生产基础知识强化考核试卷含答案
- 加氢稳定装置操作工技术改进知识考核试卷含答案
- 2026能源新未来行业市场现状供需分析及投资评估规划分析研究报告
- 2026中国液体化学品冷链物流技术应用与发展趋势报告
- 2026葡萄牙建筑行业市场深度分析及竞争布局与未来机会研究报告
- 2026人工智能技术在医疗健康领域的应用与市场前景调研报告
- 2026紧急救援装备制造与技术进步市场潜力分析
- 2026年乐山市人民医院招聘考试真题及答案解析
- 玻璃幕墙专项施工方案
- 2025年温州市鹿城区工会人员招聘考试试题及答案详解
- 护理病情观察课件
- 【课件】人民法院同步教学 2025-2026学年统编版道德与法治八年级下
- 2026年中科创达试工程师岗位笔目真题(考试直接用)附答案详解
- 短缺药品管理工作制度
- 2026届浙江省金丽衢十二校高三下学期第二次联考(二模)历史试题(含答案)
- 旅游景区管理培训课件
- 汤姆叔叔的小屋课件
- 北京市二中教育集团2025-2026学年七年级上学期月考语文试题(含答案)
评论
0/150
提交评论