欢迎来到天天文库
浏览记录
ID:38730151
大小:66.50 KB
页数:6页
时间:2019-06-18
《虚拟存储器的模拟实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、太原工业学院计算机工程系操作系统实验报告(04)实验名称虚拟存储器的模拟实现实验日期2016.12.3成绩姓名班级学号实验目的1.理解虚拟存储器概念。2.掌握分页式存储管理地址转换和缺页中断。实验环境PC机+windows8.1+vc++6.0实验内容1.模拟分页式存储管理中硬件的地址转换和产生缺页中断。2.用先进先出页面调度算法处理缺页中断。3.先进先出页面调度算法原理:优先淘汰最早进入内存的页面,亦即在内存中驻留时间最久的页面。该算法实现简单,只需把调入内存的页面根据先后次序链接成队列,设置一个指针总指向最早的页面。但该算法与进程实际
2、运行时的规律不适应,因为在进程中,有的页面经常被访问。实验步骤程序源码:#includeusingnamespacestd;#includeconstintNsize=10;constintPsize=12;typedefstructpage{intyemian;//页面号intbiaoji;//被访问标记}page;//页面逻辑结构pageblock[Nsize];//pageblock[Psize];voidInit(intQString[],intNsize){//初始化内存单元,缓冲区for
3、(inti=0;i4、e,intNsize){//查找内存中是否有该页面for(inti=0;i=block[a].biaoji){a=i;//找到应置换的页面,返回位置}}returna;}voiddisplay(intNsize5、){//显示for(inti=0;i6、else{space=findSpace(Nsize);if(space!=-1)//找到空闲内存{block[space]=block[i];display(Nsize);}else{action=findReplace(Nsize);//找到应置换的页面block[action]=block[i];display(Nsize);}}for(intj=0;j7、ar(intNsize){//快清除for(inti=0;i>QString[i];}cout<<"页面号引用串:";for(i=0;i<12;i++){cout<8、>>Nsize;if(Nsize>0&&Nsize<=10){Init(QString,Nsize);cout<<"页面号引用串:";for(inti=0;i
4、e,intNsize){//查找内存中是否有该页面for(inti=0;i=block[a].biaoji){a=i;//找到应置换的页面,返回位置}}returna;}voiddisplay(intNsize
5、){//显示for(inti=0;i6、else{space=findSpace(Nsize);if(space!=-1)//找到空闲内存{block[space]=block[i];display(Nsize);}else{action=findReplace(Nsize);//找到应置换的页面block[action]=block[i];display(Nsize);}}for(intj=0;j7、ar(intNsize){//快清除for(inti=0;i>QString[i];}cout<<"页面号引用串:";for(i=0;i<12;i++){cout<8、>>Nsize;if(Nsize>0&&Nsize<=10){Init(QString,Nsize);cout<<"页面号引用串:";for(inti=0;i
6、else{space=findSpace(Nsize);if(space!=-1)//找到空闲内存{block[space]=block[i];display(Nsize);}else{action=findReplace(Nsize);//找到应置换的页面block[action]=block[i];display(Nsize);}}for(intj=0;j7、ar(intNsize){//快清除for(inti=0;i>QString[i];}cout<<"页面号引用串:";for(i=0;i<12;i++){cout<8、>>Nsize;if(Nsize>0&&Nsize<=10){Init(QString,Nsize);cout<<"页面号引用串:";for(inti=0;i
7、ar(intNsize){//快清除for(inti=0;i>QString[i];}cout<<"页面号引用串:";for(i=0;i<12;i++){cout<8、>>Nsize;if(Nsize>0&&Nsize<=10){Init(QString,Nsize);cout<<"页面号引用串:";for(inti=0;i
8、>>Nsize;if(Nsize>0&&Nsize<=10){Init(QString,Nsize);cout<<"页面号引用串:";for(inti=0;i
此文档下载收益归作者所有