虚拟存储器的模拟实现.docx

上传人:大张伟 文档编号:10737794 上传时间:2021-06-01 格式:DOCX 页数:8 大小:50.30KB
返回 下载 相关 举报
虚拟存储器的模拟实现.docx_第1页
第1页 / 共8页
虚拟存储器的模拟实现.docx_第2页
第2页 / 共8页
虚拟存储器的模拟实现.docx_第3页
第3页 / 共8页
虚拟存储器的模拟实现.docx_第4页
第4页 / 共8页
虚拟存储器的模拟实现.docx_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《虚拟存储器的模拟实现.docx》由会员分享,可在线阅读,更多相关《虚拟存储器的模拟实现.docx(8页珍藏版)》请在三一文库上搜索。

1、太原工业学院计算机工程系操作系统 实验报告(04)实验名称虚拟存储器的模拟实现实验日期2016.12.3成绩姓 名班级学号实验目的1 .理解虚拟存储器概念。2 .掌握分页式存储管理地址转换和缺页中断。实验环境PC 机+windows8.1+vc+6.0实1.2.3.模拟分页式存储管理中硬件的地址转换和产生缺页中断。 用先进先出贞向调度算法处理缺页中断。先进先出页而调度算法原理:验优先淘汰最早进入内存的贞向,亦即在内存中驻留时间最久的贡内面。该算法实现简单,只需把调入内存的页面根据先后次序链接成队列,容设置一个指针总指向最早的页面。但该算法与进程实际运行时的规律不适应,因为在进程中,有的贞向经常

2、被访问。实验步骤程序源码:#include using namespace std;#includeconst int Nsize=10;const int Psize=12;typedef struct pageint yemian;/ 页面号int biaoji;/被访问标记 page;/页面逻辑结构 page blockNsize;/page blockPsize;void Init(int QString口,int Nsize) 初始化内存单兀,缓冲区for(int i=0;iNsize;i+)blocki.yemian=-1;/ 找到内存空间blocki.biaoji=0;for(

3、i=0;iPsize;i+)blocki.yemian=QStringi;blocki.biaoji=0;int findSpace(int Nsize)查找是否启空闲内存for(int i=0;iNsize;i+)if(blocki.yemian=-1)return i;找到空闲内存,返回位直return -1;int findExist(int curpage,int Nsize)查找内存中是否有该贝囿for(int i=0;iNsize;i+)if(blocki.yemian=blockcurpage.yemian)return i;/找到页面返回return -1;int findRe

4、place(int Nsize)查找置换的页面int a=0;for(int i=0;i=blocka.biaoji)a=i;找到应置换的贝囿,返回位直return a;void display(int Nsize)显示for(int i=0;iNsize;i+)if(blocki.yemian!=-1)coutblocki.yemian,飞空闲内存coutendl;/FIFO置换算法void FIFO(int Nsize)int exist,space,action;float score;for(int i=0;iPsize;i+)exist=findExist(i,Nsize);if(e

5、xist!=-1)/内存中后此贝囿cout不缺页endl;score+=1;/统计不缺页次数elsespace=findSpace(Nsize);精品资料if(space!=-1)找到空闲内存blockspace=blocki; display(Nsize);else action=findReplace(Nsize);/ 找到应置换的页面 blockaction=blocki;display(Nsize);for(int j=0;jNsize;j+)blockj.biaoji+; 所有的页面 biaoji+ cout缺页次数为:20-scoreendl;void BlockClear(int

6、 Nsize)快清除for(int i=0;iNsize;i+)blocki.yemian=-1;blocki.biaoji=0;void main(void)int i,Nsize,QStringPsize=0;cout请输入12个数n;for( i=0;iQStringi;cout页面号引用串:;for( i=0;i12;i+)coutQStringi ;coutendl;coutNsize;if(Nsize0 & Nsize=10)Init(QString,Nsize);cout页面号引用串:;for(int i=0;iPsize;i+) coutQStringiendl; coutendl;coutFIFO 算法结果如下:endl;FIFO(Nsize);BlockClear(Nsize);coutendl;system(pause);system(cls);10的数elsecout 输入 有误,物理块数请选择1endlNsize;完成了本次实验要求的模拟分页式存储管理中硬件的地址转换和产生缺页中断以及用先进先出页面调度算法处理缺页中断的.实验内容。学会了用FIFO处理缺页中断,掌握了 FIFO算法。Welcome ToDownload !欢迎您的下载,资料仅供参考!

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

当前位置:首页 > 科普知识


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