



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.软件学院操作系统实验报告专业:软件工程班级:RB软工互 152学号:201560160226学生姓名:王泽华指导教师:韩新超范文 .实验四: 请求页式存储管理一实验目的深入理解请求页式存储管理的原理,重点认识其中的地址变换、缺页中断、置换算法等实现思想。二实验属性该实验为综合性、设计性实验。三实验仪器设备及器材普通 PC386以上微机四实验要求本实验要求 4 学时完成。本实验要求完成如下任务:(1) 建立相关的数据结构:存储块表、页表等;(2) 实现基本分页存储管理,如分配、回收、地址变换;(3) 在基本分页的基础上实现请求分页存储管理;(4) 给定一批作业 / 进程,选择一个分配或回收模拟
2、;(5) 将整个过程可视化显示出来。实验前应复习实验中所涉及的理论知识和算法,针对实验要求完成基本代码编写并完成预习报告、 实验中认真调试所编代码并进行必要的测试、记录并分析实验结果。实验后认真书写符合规范格式的实验报告(参见附录A),并要求用正规的实验报告纸和封面装订整齐,按时上交。五、实验提示1、本实验虽然不以前面实验为基础,但建议在其界面中继续增加请求页式范文 .存储管理功能。2、数据结构:内存分配表、页表空间(用数组实现),修改 PCB结构增加页表指针、页表长度。3、存储管理:编写内存分配、内存回收算法、页面置换算法。4、主界面设计:在界面上增加一个请求分页内存分配按钮、请求分页内存回
3、收按钮、装入指定进程的指定页按钮。触发请求分页内存分配按钮,弹出作业大小输入框,输入后调用内存分配函数,在内存分配表和页表中看到分配的存储块。触发请求分页内存回收按钮,弹出进程 ID 输入框,输入后调用内存回收函数,在内存分配表中看到回收后的状态改变。5、功能测试:从显示出的内存分配表和页表,可查看操作的正确与否。六、实验步骤( 1) 任务分析 :1. 最佳页面置换算法( OPT):其所选择的被淘汰页面,将是以后永不使用的或许是在最长 ( 未来 ) 时间内不再被访问的页面。 采用最佳置换算法, 通常可保证获得最低的缺页率。2. 最近最久未使用( LRU)算法:当需要置换一页时,选择在最近一段时
4、间里最久没有使用过的页面予以置换。( 2) 程序设计:程序功能模块图如下:请求分页式储存管理范文 .最 近先最 久进未 使先用 算出法算法(1)在同一进程中的各个线程,都可以共享该进程所拥有的资源,这表现在:所有线程都具有相同的地址空间(进程的地址空间)。此外我们应该还要用控制语句,控制线程的同步执行。2.这个实验是要求我们采用算法模拟分页存储管理技术的FIFO 和 LRU算法。所以我们应该先生成地址序列, 有了地址序列,我们要找到它所在的虚页,然后通过查找实页,再判断下一步动作。假如要访问的虚页不在内存中,不命中,我们要替换实页内容。根据FIFO 算法,直接替换最早进入内存中的那一页就可以了
5、。所以可以设立一个循环指针, 记录那个最早进入内存中的那页。 而对于 LRU算法,我们要替换是到现在为止最长时间没被访问的页,在这里我们可以用一个队列来表示内存。把最久没使用的页放在队头,然后替换进去的页放在队尾就可以了。假如要访问的虚页在内存中,明显是命中。对于 FIFO 算法,不处理,而对于LRU算法,我们还要把他的权值置0。(2)系统功能流程图:开始开始NN还有指令?还有指令?YY计算页号计算页号范文 .找到Y了吗?YNN新页进入计算过程数组第一 位,其余为一次下移计算命中率找到了吗?比较现有页面计数项的大小,新页面替换最大项页面计算命中率结束结束(3)算法分析1. 先进先出定义一个队列
6、存放页面,头指针记录最先进入队列的页面的位置,每次替换头指针指向的页面。2. 最近最少使用定义一个二维数组,一维用来记录页面号,一维用来记录该页面被使用的次数,每次替换最近最少使用的页面(3)程序结果: 在运行界面选择某个算法,运行结果,如图1,图 2 所示:范文 .图 1图 2( 3) 调试与测试:1. 第一道涉及线程的题编译时总是发生错误,原来编译这类程序在原有的编译语言后要加上 -pthread.2. 第二个分页算法我们在系统结构课已经做过这个实验,所以有了一定的了解,加上一点修改就能够使用了。所以没太花功夫。七、实验总结范文 .通过实现请求页式存储管理的几种基本页面置换算法,了解了虚拟
7、存储技术的特点。通过对页面、页表、地址转换和页面置换过程的模拟,加深对请求调页系统的原理和实现过程的理解,也知道了几种算法的效率, 也验证了 LRU算法的命中率平均的比FIFO 算法要高。通过本次实验, 我收获了很多。 我了解到编写程序不是首要任务,而是一种实现手段。我们最重要的是如何做好需求分析和理清思路,做出正确、简介的流程设计,这样可以达到事半功倍的效果。八、附录/# include <windows.h>/# include <iostream>#include"stdio.h"#include<conio.h>#include
8、<malloc.h>#define N 16#define num 5 /*进程分配物理块数目*/int AN=1,2,3,4,5,6,7,8,5,2,3,2,7,8,1,4; /*页表映像 */typedef struct page int address;/*页面地址 */struct page *next;page;struct page *head,*run,*rear;void jccreat()/*进程分配物理块*/ int i=1;page *p,*q;head=(page *)malloc(sizeof(page); p=head;for(i=1;i<=num
9、;i+) q=(page *)malloc(sizeof(page);p->next=q; q->address=0; q->next=NULL; p=q; rear=p;int search(int n)page *p;范文 .int i=0;p=head;while(p->next)if(p->next->address=n)printf("Get it at the page %dn",i+1);run=p;return 1;p=p->next;i+;return 0;void changeOPT(int n,int posi
10、tion)int i;int total=0;int flag=1;int distancenum;int MAX;int order=0;page *p,*q;p=head->next;q=head->next;for(i=0;i<num;i+)distancei=100;i=0;while(p)if(p->address=0)flag=0;break;范文 .p=p->next;i+;if(!flag)p->address=n;printf("Change the page %dn",i+1);elsewhile(q)for(i=po
11、sition;i<N;i+)if(q->address=Ai)distancetotal=i-position;total+;q=q->next;MAX=distance0;for(i=0;i<num;i+)if(distancei>MAX)MAX=distancei;order=i;printf("Change the page %dn",order+1);i=0;while(p)if(i=order)p->address=n;i+;范文 .p=p->next;void changeLRU(int n)int i=0;int fl
12、ag=1;page *p,*delect;p=head->next;while(p)if(p->address=0)flag=0;p->address=n;printf("Change the page %dn",i+1);break;p=p->next;i+;if(flag)delect=head->next;head->next=delect->next;printf("Delect from the head, and add new to the end.n");delect->address=n;
13、rear->next=delect;rear=delect;rear->next=NULL;float OPT()int i;范文 .int lose=0;float losef;float percent;for(i=0;i<N;i+)if(search(Ai)=0)lose+;changeOPT(Ai,i);losef=lose;percent=1-(losef/N);return percent;float LRU()int i;int lose=0;float losef;float percent;page *p;for(i=0;i<N;i+)if(searc
14、h(Ai)=0)lose+;changeLRU(Ai);elsep=run->next;run->next=p->next;范文 .rear->next=p;rear=p;rear->next=NULL;printf("Move it to end of queue.n");losef=lose;percent=1-(losef/N);return percent;main() /*主函数部分 */float percent;int choice;printf("Select the arithmetic:n(1)OPTn(2)LRUnyour choice is:");scanf("%d",&choice);/*选择页面置换算法 */jccreat();/*创建进程 */if(choice=1)/*采用 OPT算法置换 */percent=OPT();/*计算 OPT时的缺页率 */printf("The percent of OPT is %f",percent);else if(choi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农资批发行业深度调研及发展项目商业计划书
- 眼部护理专效原料企业制定与实施新质生产力项目商业计划书
- 酸性原状黄土动力特性与微观结构试验研究
- 面向竞拍的智能合约形式化定义与模板设计
- 二年级下册数学复习计划模板
- 2025公司管理人员安全培训考试试题加解析答案
- 2024-2025企业员工岗前安全培训考试试题答案考试直接用
- 2024-2025安全标准化安全培训考试试题带答案AB卷
- 2025公司项目负责人安全培训考试试题含答案(完整版)
- 2024-2025厂级职工安全培训考试试题及答案a4版
- GB/T 15768-1995电容式湿敏元件与湿度传感器总规范
- 2023年河北省对口升学计算机专业理论试题(附答案)2
- SH3503-2017石化交工资料石化封皮(电气安装工程交工资料)
- 建筑电气自动化论文(整理13篇)
- 印刷产品检验报告
- 雷霆传奇亲测-h5修改汇总
- 2023年版-肿瘤内科临床路径
- (完整版)水电工安全技术交底
- 《中国传统文化心理学》课件第五章 传统文化与心理治疗(修)
- 幼儿园各类档案借阅登记表
- 蒸汽疏水阀性能监测斯派莎克工程中国有限公司-Armstrong
评论
0/150
提交评论