常用页面置换算法模拟实验WORD.doc

上传人:doc321 文档编号:14131718 上传时间:2022-02-02 格式:DOC 页数:11 大小:274.50KB
返回 下载 相关 举报
常用页面置换算法模拟实验WORD.doc_第1页
第1页 / 共11页
常用页面置换算法模拟实验WORD.doc_第2页
第2页 / 共11页
常用页面置换算法模拟实验WORD.doc_第3页
第3页 / 共11页
常用页面置换算法模拟实验WORD.doc_第4页
第4页 / 共11页
常用页面置换算法模拟实验WORD.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《常用页面置换算法模拟实验WORD.doc》由会员分享,可在线阅读,更多相关《常用页面置换算法模拟实验WORD.doc(11页珍藏版)》请在三一文库上搜索。

1、文档可能无法思考全面,请浏览后下载! 操作系统课程实验报告实验地点实验时间实验课表现出勤和个人表现Q1(15+15(组长评分)=30分)得分:实验总分(Q1+Q2+Q3+Q4)实验完成情况Q2(45分(组长与教师评分的加权平均)得分:实验编号与实验名称:第7次实验 常用页面置换算法模拟实验实验目的:1实验目的通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特点,掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程,并比较它们的效率。实验内容及要求(详见实验讲义与实验指导书):2.实验要求: 1)要求用你熟悉的程序设计语言编写和调试一个页面置换模拟程序;要

2、求在主函数中测试。2)实验报告中必须包括:设计思想、数据定义(包括详细说明)、处理流程(详细算法描述和算法流程图)、源代码、运行结果、体会等部分。3)必须模拟本实验内容中提到的算法中的至少2种页面置换算法。4) 比较不同页面置换算法的效率3实验内容编写一个程序,使用以下页面置换算法中的某2种分别模拟一个分页系统,并统计同一个页面访问序列情况下不同页面置换算法引发的缺页中断次数。1、第二次机会算法(Second Chance)2、最近最少使用算法(Least Recently Used,LRU )3、最不常用算法(Not Frequently Used,NFU)4、最近未使用算法(Not Rec

3、ently Used ,NRU)5、时钟页面置换算法6、老化算法(aging)页框的数量固定为4,虚拟页面数为8。实验输入为访问页面序列,比如0,1 ,3 ,2,7,1实验用到的软件(:)C-Free 5实验内容及关键步骤(代码)Q3(15分)得分:10 / 11流程图:代码:#include #include #include #define page_frame_number 4 /页框数 #define virtual_page_number 8 /虚拟页面数 int page_id, counter = 0;/输入id和计数器 char algorithm20;/算法选择 int pa

4、ge_interrupt_number = 0;struct Page_tableint page_id; /页号 int load_time; /装入时间 int last_visit_time; /最后访问时间 page_tablepage_frame_number;int cmp(const void *p,const void *q) int c = (*(struct Page_table*)p).load_time - (*(struct Page_table*)q).load_time;if(c 0) return 1; elsereturn -1;int cmp1(const

5、void *p,const void *q) int c = (*(struct Page_table*)p).last_visit_time - (*(struct Page_table*)q).last_visit_time;if(c 0) return 1; elsereturn -1;void init()/初始化 int i;for(i = 0; i page_frame_number; i+)page_tablei.page_id = -1;page_tablei.load_time = -1;page_tablei.last_visit_time = -1;void print(

6、int x)/打印信息 int i,j;switch(x)case 0:for(i = 0; i 80; i+)printf(-);printf(tt试验七 常用页面置换算法模拟实验n);for(i = 0; i 80; i+)printf(-);printf(n);printf(选择算法:F/L(FIFO算法/LRU算法)n);break;case 1:printf(请输入访问页面的顺序,以“-1”结束:n);break;case 2:printf(页表信息:n页 号 页框号 装入时间 最近访问时间n);for(j = 0; j page_frame_number; j+)printf(%4

7、d%8d%7d%7dn,page_tablej.page_id,j,page_tablej.load_time,page_tablej.last_visit_time);break;case 3:for(i = 0; i 80; i+)printf(-);printf(ttFIFO算法模拟过程n);for(i = 0; i 80; i+)printf(-);printf(n);break;case 4:for(i = 0; i 80; i+)printf(-);printf(ttLRU算法模拟过程n);for(i = 0; i 80; i+)printf(-);printf(n);int ju

8、dge()int i;for(i = 0; i page_frame_number; i+)if(page_tablei.page_id = -1|page_tablei.page_id = page_id)return i;return -1;void fifo()int j;print(3);print(1);while(1)scanf(%d,&page_id);if(page_id = -1)break;j = judge();if(j = -1)qsort(page_table, page_frame_number, sizeof(struct Page_table), cmp);/按

9、照最后访问时间从小到大排序 page_table0.page_id = page_id;page_table0.load_time = counter;page_table0.last_visit_time = counter;page_interrupt_number+;elseif(page_tablej.page_id = -1)page_tablej.page_id = page_id;page_tablej.load_time = counter;page_tablej.last_visit_time = counter;page_interrupt_number+;elsepage

10、_tablej.last_visit_time = counter;counter+;print(2);printf(缺页中断次数:%dn,page_interrupt_number);void lru()int j;print(4);print(1);while(1)scanf(%d,&page_id);if(page_id = -1)break;j = judge();if(j = -1)qsort(page_table, page_frame_number, sizeof(struct Page_table), cmp1);/按照装入时间从小到大排序 page_table0.page_i

11、d = page_id;page_table0.load_time = counter;page_table0.last_visit_time = counter;page_interrupt_number+;elseif(page_tablej.page_id = -1)page_tablej.page_id = page_id;page_tablej.load_time = counter;page_tablej.last_visit_time = counter;page_interrupt_number+;elsepage_tablej.last_visit_time = counte

12、r;counter+;print(2);printf(缺页中断次数:%dn,page_interrupt_number);int main()print(0);init();while(1) scanf(%s,algorithm); if(strcmp(algorithm,F) = 0|strcmp(algorithm,L) = 0) break; else printf(输入出错,请重新输入n);if(strcmp(algorithm,F) = 0)fifo();elselru();system(pause);return 0;FIFO算法运行结果LRU算法运行结果实验过程中遇到的问题解决办法与实验体会Q4(需手写,10分)得分:这次实验让我了解了内存页面置换的几种算法,通过代码,让我更加深刻了了解了fifo,lru,算法的核心思想。对于其他页面替换算法,也有初步的学习理解。评阅教师特殊评语:评阅教师: 日 期: (注:可编辑下载,若有不当之处,请指正,谢谢!)

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1