ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:155.24KB ,
资源ID:1931340      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1931340.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(常用页面置换算法模拟实验.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

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 Recently U

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

4、umber = 0;struct Page_table int 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; else return -1;int cmp1(const void *p,con

5、st void *q) int c = (*(struct Page_table*)p).last_visit_time - (*(struct Page_table*)q).last_visit_time; if(c 0) return 1; else return -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(int

6、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+)

7、 printf(%4d%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+) pri

8、ntf(-); printf(n); int judge() 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_nu

9、mber, sizeof(struct Page_table), cmp);/按照最后访问时间从小到大排序 page_table0.page_id = page_id; page_table0.load_time = counter; page_table0.last_visit_time = counter; page_interrupt_number+; else if(page_tablej.page_id = -1) page_tablej.page_id = page_id; page_tablej.load_time = counter; page_tablej.last_visi

10、t_time = counter; page_interrupt_number+; else page_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, s

11、izeof(struct Page_table), cmp1);/按照装入时间从小到大排序 page_table0.page_id = page_id; page_table0.load_time = counter; page_table0.last_visit_time = counter; page_interrupt_number+; else if(page_tablej.page_id = -1) page_tablej.page_id = page_id; page_tablej.load_time = counter; page_tablej.last_visit_time =

12、 counter; page_interrupt_number+; else page_tablej.last_visit_time = counter; 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(); else lru(); system(pause); return 0; FIFO算法运行结果LRU算法运行结果实验过程中遇到的问题解决办法与实验体会Q4(需手写,10分)得分:这次实验让我了解了内存页面置换的几种算法,通过代码,让我更加深刻了了解了fifo,lru,算法的核心思想。对于其他页面替换算法,也有初步的学习理解。评阅教师特殊评语:评阅教师: 日 期:如有侵权请联系告知删除,感谢你们的配合!

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

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