虚拟内存页面置换算法实验报告_第1页
虚拟内存页面置换算法实验报告_第2页
虚拟内存页面置换算法实验报告_第3页
虚拟内存页面置换算法实验报告_第4页
虚拟内存页面置换算法实验报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件学院上机实验报告课程名称: 操作系统原理实验项目: 虚拟内存页面置换算法实验室:地狱018姓 名: 死神 学 号:专业班级: 实验时间:2015/12/13实验成绩评阅教师实验目的及要求通过这次实验,加深对虚拟内存页面置换概念的理解, 进一步掌握先进先出FIFO 最佳置换OPI和最近最久未使用LRU页面置换算法的实现方法。结合 Linux的内层的分 析方法查看内存的分配过程及linux kernel 的内存管理机制二、实验性质设计性三、实验学时4学时四、实验环境实验环境1.实验环境:C与C+程序设计学习与实验系统2.知识准备:(1)使用Linux的基本命令;(2)了解Linux vmsta

2、t、free、top等命令查看linux 系统的内存 分配情况;(3)掌握虚拟内存页面置换算法 FIFO等基本算法理论。五、实验内容及步骤假设有n个进程分别在T1,,Tn时刻到达系统,它们需要的服务时间分别为 S1,,Sn。分别采用先来先服务FCFS和短作业优先SJF进程调度算法进行调度,计算 每个进程的完成时间、周转时间和带权周转时间,并且统计 n个进程的平均周转时间和 平均带权周转时间。步骤通过已知最小物理块数、页面个数、页面访问序列、及采用置换方式可以得出页面 置换的缺页次数和缺页率,及每次缺页时物理块中存储。1输入的形式int PageOrderMaxNumber;页面序列int Pa

3、geNum,LackNum=0,BlockNum; 页面个数,缺页次数,最小物理块数2.输出的形式double LackPageRate/ 缺页率缺页个数每次缺页时物理块中存储程序所能达到的功能模拟先进先出FIFO最佳置换OPI和最近最久未使用LRU页面置换算法的工作过程。 假设内存中分配给每个进程的最小物理块数为m在进程运行过程中要访问的页面个数为n,页面访问序列为P1,,Pn,分别利用不同的页面置换算法调度进程的页面访问 序列,给出页面访问序列的置换过程,计算每种算法缺页次数和缺页率。测试数据,包 括正确的输入及其输出结果和含有错误的输入及其输出结果。程序中用到的所有抽象数据类型的定义、主

4、程序的流程以及各程序模块之间的层次(调用)关系。int PageOrderMaxNumber;/页面序列int PageCou ntMaxNumber=0;计算内存内数据离下一次出现的距离int PageNum,LackNum=0,BlockNum;/页面个数,缺页次数,最小物理块数 double LackPageRate=0;bool foun d=false;流程图头文件六、实验数据及结果分析运行截图:图6.1为皿:55kIAAA 贮否鳶输 主w C:J1SOFTCYuYanbinrtexel-lahl输入数据;啟不输入,1:重新输入面个数:小物理块癡3面序列:435432156Z3712

5、61:1-FIF0, 2-0PI, 3-LBU:2晴选择继续还是结束:臥继续,1:结束图6.2图6.3七、实验总结这次试验,让我加深了对虚拟内存页面置换算法的理解, 进一步掌握先进先出FIFO 最佳置换OPI和最近最久未使用LRU页面置换算法的实现方法。熟悉 Linux需要经过大 量的实验、改进与思考,在编写代码的过程中遇到了一些问题要积极面对并通过讨论上 网或者问老师解决。通过这次试验我了解了虚拟内存置换算法的一些知识,是我对于所 学习的专业知识得到了更好的巩固和提升。附录源程序清单#in elude using n amespace std;#define MaxNumber 100voi

6、d OPI(i nt PageOrderMaxNumber,i nt PageCou ntMaxNumber,int PageNum,int LackNum,int BlockNum, double LackPageRate,boo found)int moduleMaxNumber;int sum=0;int i,j,k,m;for(i=0;iBlockNum;i+) 将内存填满modulei=PageOrderi;sum+; for(j=0;jv=i;j+)coutvvmodulejvv;coute ndl;LackNum=BlockNum;for(i=BlockNum;iPageNum;

7、i+)foun d=false;for(j=0;jBlockNum;j+ )/遍历已存储,判断是否缺页if(modulej=PageOrderi)foun d=true;break;if(fou nd=false)缺页,选择替换for(j=0;jBlockNum;j+) /计算内存内数据离下一次出现的距离 PageCou ntj=0;for(k=i+1;kPageNum;k+)if(modulej!=PageOrderk)PageCou ntj+;elsebreak;int max=PageCo un t0;int kin d=0;for(j=0;jmax)max=PageCo un tj;k

8、i nd=j;modulek in d=PageOrderi;LackNum+;for(m=0; m3;m+)coutmodulem; coute ndl;LackPageRate=(LackNum*1.0)/PageNum; cout该算法缺页次数为:vvLackNumvvendl;cout该算法缺页率为:vLackPageRate*100vv%vvendl;先进先出置换算void FIFO(i nt PageOrderMaxNumber,i nt PageCou ntMaxNumber,int PageNum,int LackNum,int BlockNum, double LackPag

9、eRate,boo found)int moduleMaxNumber;int sum=O;int i,j,m;for(i=0;iBlockNum;i+) 将内存填满modulei=PageOrderi;sum+;PageCou nti=3-i;for(j=0;j=i;j+)coutmodulej;coute ndl;LackNum=BlockNum;for(i=BlockNum;iPageNum;i+)foun d=false;for(j=0;jBlockNum;j+ )/遍历已存储,判断是否缺页 if(modulej=PageOrderi)foun d=true;break;if(fou

10、nd=false)缺页,选择替换int max=PageCo un t0;int kin d=0;for(j=0;jmax)max=PageCo un tj;ki nd=j;for(int k=0;kBlockNum;k+) 不是最大值,则要 +1if(k!=ki nd)PageCou ntk+;modulek in d=PageOrderi;PageCountkind=0;替换之后已经查询的次数改为 0LackNum+;for(m=0; m3;m+)coutmodulem;coute ndl;LackPageRate=(LackNum*1.0)/PageNum;cout该算法缺页次数为:vv

11、LackNumvvendl;cout该算法缺页率为:vLackPageRate*100vv%vvendl;最近最久未使用置换算法void LRU(i nt PageOrderMaxNumber,i nt PageCou ntMaxNumber,found) int moduleMaxNumber;int sum=0;int i,j,m;for(i=0;iBlockNum;i+) 将内存填满modulei=PageOrderi;sum+;PageCou nti=3-i;for(j=0;j=i;j+)coutmodulej;coute ndl;LackNum=BlockNum;for(i=Bloc

12、kNum;iPageNum;i+)foun d=false;for(j=0;jBlockNum;j+)遍历已存储,判断是否缺页 if(modulej=PageOrderi)foun d=true;PageCou ntj=0;查询后,更改次数for(int k=0;kBlockNum;k+)if(k!=j)PageCou ntk+; break;if(foun d=false)缺页,选择替换int max=PageCo un t0;int kin d=0;for(j=0;jmax)max=PageCo un tj;ki nd=j;for(int k=0;kBlockNum;k+)if(k!=ki

13、 nd)PageCou ntk+;modulek in d=PageOrderi;PageCountkind=0;替换之后未查询的次数改为 0LackNum+;for(m=0; m3;m+)coutmodulem;coute ndl;LackPageRate=(LackNum*1.0)/PageNum;cout该算法缺页次数为:vvLackNumvvendl;cout该算法缺页率为:v chioce2;if(chioce2=1)coutvv请输入页面个数:;cin PageNum;coutvv请输入最小物理块数;cin BlockNum;coutvv请输入页面序列:e ndl;for(i=0;i PageOrderi;coutvv请选择算法:1-FIFO, 2-OPI, 3-LRU:;cin chioce3;if(chioce3=1)FIFO(PageOrder,PageCou nt,PageNum,LackNum,LackPageRate, foun d);elseif(chio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论