第7次 常用页面置换算法模拟实验.doc

第7次 常用页面置换算法模拟实验.doc

ID:58875228

大小:525.50 KB

页数:16页

时间:2020-09-21

第7次  常用页面置换算法模拟实验.doc_第1页
第7次  常用页面置换算法模拟实验.doc_第2页
第7次  常用页面置换算法模拟实验.doc_第3页
第7次  常用页面置换算法模拟实验.doc_第4页
第7次  常用页面置换算法模拟实验.doc_第5页
资源描述:

《第7次 常用页面置换算法模拟实验.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、...操作系统课程实验报告学号系计算机科学与技术任课教师贺辉指导教师贺辉评阅教师贺辉实验地点实验时间实验编号与实验名称:第7次常用页面置换算法模拟实验实验目的:通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特点,掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程,并比较它们的效率。实验容及要求(详见实验讲义):实验要求:1)要求用你熟悉的程序设计语言编写和调试一个页面置换模拟程序;要求在主函数中测试。2)实验报告中必须包括:设计思想、数据定义(包括详细说明)、处理流程(详细算法描述和算法流程图)、源代码、运行结果、体会等部分。3)必

2、须模拟本实验容中提到的算法中的至少2种页面置换算法。4)比较不同页面置换算法的效率实验容编写一个程序,使用以下页面置换算法中的某2种分别模拟一个分页系统,并统计同一个页面访问序列情况下不同页面置换算法引发的缺页中断次数。1、第二次机会算法(SecondChance)2、最近最少使用算法(LeastRecentlyUsed,LRU)3、最不常用算法(NotFrequentlyUsed,NFU)4、最近未使用算法(NotRecentlyUsed,NRU)5、时钟页面置换算法6、老化算法(aging)页框的数量固定为4,虚拟页面数为8。实验输入为访问页面序列,比如0,1,3,2,7

3、,1实验用到的软件(:)Vs,word,processon实验容、关键步骤(流程图、代码等)及结果分析(70分)一、先进先出页面置换算法.......1、基本思想:地址映射过程中,若在页面中发现所要访问的页面不再存中,则产生缺页中断。当发生缺页中断时操作系统必须在存选择一个页面将其移出存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。最简单的页面置换算法是先入先出(FIFO)法。2、算法流程图3、步骤说明(1)初始化voidinit(){//初始化inti;for(i=0;i

4、.page_id=-1;page_table[i].load_time=-1;page_table[i].last_visit_time=-1;}}(2)选择算法,输入插入页面号。进入判断函数intjudge(){//判断页框是否满,或者页框里面是否已存在页面inti;.......for(i=0;i

5、

6、page_table[i].page_id==page_id)returni;}return-2;}之后根据返回数的不同决定了不同类型返回-2则说明页框满且页框里面没有存在

7、要插入的页面。返回-1则说明页框未满返回其它数则说明页框里存在相同的页面(3)//当没有空页框,并且页面本身也没有存在,则执行一下代码qsort(page_table,page_frame_number,sizeof(structPage_table),cmp);//按照装入时间从小到大排序page_table[0].page_id=page_id;page_table[0].load_time=counter;page_table[0].last_visit_time=counter;page_interrupt_number++;将页框号为0的页面置换成最新插入的页面。i

8、ntcmp(constvoid*p,constvoid*q){//按照装入时间从小到大排序intc=(*(structPage_table*)p).load_time-(*(structPage_table*)q).load_time;if(c>0)return1;elsereturn-1;}排序函数,将页面按装入时间从小到大排序(4)//如果页面未满,则将页面替换在空页框里if(page_table[j].page_id==-1){page_table[j].page_id=page_id;page_table[j].load_time=counter;page_table

9、[j].last_visit_time=counter;page_interrupt_number++;则将页面替换在页框号最小的空页框里(5)//如果页面本身存在页框中,则执行一下代码page_table[j].last_visit_time=counter;则更新页面的最近访问时间(6)qsort(page_table,page_frame_number,sizeof(structPage_table),cmp3);//按照装入时间从小到大排序print(2);打印出页表详细信息printf("页表

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。