操作系统-存储器管理-实验报告_第1页
操作系统-存储器管理-实验报告_第2页
操作系统-存储器管理-实验报告_第3页
全文预览已结束

下载本文档

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

文档简介

实验二、存储器管理一、实验目的理解各类置换算法的原理和虚拟存储器管理的方法。二、实验内容编程实现LRU算法或CLOCK/改进算法等置换算法(二选一),模拟实现虚拟存储器的地址变换过程。实验步骤:理解LRU或CLOCK改进算法等置换算法;设计与算法相关的数据结构,如:LRU的堆栈或CLOCK改进算法中的循环结构;按照最多5块的内存分配情况,编程实现所选算法,动态输入访问内存的块号序列,输出置换结果;测试:输入合法、非法的访问序列数据,检查程序的正确性。理解虚拟存储器的地址变换过程;设计用于模拟快表、页表、地址变换所用的寄存器的数据结构;编制页表的初始信息文件,举例说明文件中具有的信息:共有5块,每块的状态、在内存和外存的起始地址等。编程实现虚拟存储器地址变换算法程序,动态输入所要访问的逻辑地址,变换过程文字描述以及变换后的物理地址;测试:输入有效、无效地址,测试程序的正确性和错误处理能力。三、实验环境Windows2000;MicrosoftVisualC++6.0四、程序源码与运行结果LRU算法代码#include<iostream>usingnamespacestd;intsize;int*w;//定义一个动态数组structmem{intnum;intcount;}memBlock[3]={0,0,0,0,0,0};voidLRU(){for(inti=0;i<size;i++){intmaxCount=memBlock[0].count;intmaxPos=0;intj=0;boolbFind=false;for(j=0;j<3;j++){//标记出count值最大的位置if(maxCount<memBlock[j].count){maxCount=memBlock[j].count;maxPos=j;}//将所有的count值都+1memBlock[j].count++;//如果命中,将其count值置为0if(w[i]==memBlock[j].num){memBlock[j].count=0;bFind=true;}}//未命中,将count最大的拿来替换if(!bFind){memBlock[maxPos].num=w[i];memBlock[maxPos].count=0;}for(j=0;j<3;j++)//输出cout<<memBlock[j].num<<"";cout<<""<<endl;}}intmain()//主函数{cout<<"请输入需访问的页面数量:"<<endl;cin>>size;w=newint[size];cout<<"请输入需要访问的页面"<<endl;for(inta=0;a<size;a++){cin>>w[a];//输入数组}cout<<endl<<"(LRU)"<<endl;

温馨提示

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

评论

0/150

提交评论