已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实 验 报 告课程名称操作系统实验班级实验日期姓 名学号实验成绩实验名称存储器管理实验目的及要求1、编程模拟实现存储器页面置换的常用算法,调试分析相关存储器管理程序,加深对存储器页面置换常用算法的理解和实现技巧实验内容1、 自定义存储器管理有关的数据结构;2、 依据最佳置换算法(OPTIMAL)、先进先出置换算法(FIFO)、最近最久未使用算法(LRU)原理,编写对应函数,模拟系统的存储器页面置换功能;3、 为了更好地模拟和评价算法的性能,允许用户自行指定可用页块数并输入需访问的页面号序列;4、 统计以上算法实际需要的总页面数、缺页中断次数以及它们的缺页率;5、 比较/分析以上算法的置换性能,并作出自己的评价。算法描述及实验步骤1、 数据结构、自定义宏、全局变量#includeusing namespace std;struct Page int num; /页面号 int timer; /计时; 2、 函数声明class pagepropublic: pagepro(); int Bsize; /进程页块数 int Psize; /访问序列长度 int findspace(); /若内存块中有空,返回该位置 int findhave(int p); /若内存块中已有页,返回内存块中位置 int findreplace(); /找到替换页的位置(for LRU) int findreplace(int i); /找到替换页的位置(for OPT) void clear(); /清理内存块 void display(); /打印内存块信息 int LRU(); /最近最久未使用算法 int FIFO(); /先进先出算法 int OPT(); /最佳置换算法 Page *block; /内存块 Page *page; /页面号串;调试过程及实验结果1、 最近最久未使用算法(LRU)2、 使用先进先出置换算法(FIFO)3、 使用最佳置换算法(OPT)附录源代码:#includeusing namespace std;struct Page int num; /页面号 int timer; /计时;class pagepropublic: pagepro(); int Bsize; /进程页块数 int Psize; /访问序列长度 int findspace(); /若内存块中有空,返回该位置 int findhave(int p); /若内存块中已有页,返回内存块中位置 int findreplace(); /找到替换页的位置(for LRU) int findreplace(int i); /找到替换页的位置(for OPT) void clear(); /清理内存块 void display(); /打印内存块信息 int LRU(); /最近最久未使用算法 int FIFO(); /先进先出算法 int OPT(); /最佳置换算法 Page *block; /内存块 Page *page; /页面号串;pagepro:pagepro()int pstr100;cout请输入各页面数:Psize;cout输入各页号:endl;for(int j=0;jpstrj;cout输入物理块数:Bsize; int i=0; block=new PageBsize; for(i=0;iBsize;i+) blocki.num=-1; blocki.timer=0; page=new PagePsize; for(i=0;iPsize;i+) pagei.num=pstri; pagei.timer=0; int pagepro:findspace() for(int i=0;iBsize;i+) if(blocki.num=-1) return i; return -1;int pagepro:findreplace(int i) int pos3=0; int postion=0; for(int j=0;jBsize;j+) for(int k=i;kPsize;k+) if(blockj.num=pagek.num) break; else posj+; for(j=1;j pospostion) postion=j; return postion;int pagepro:findhave(int p) for(int i=0;iBsize;i+) if(blocki.num=pagep.num) return i; return -1;void pagepro:display() for(int i=0;iBsize;i+) if(blocki.num !=-1) coutblocki.num ; coutendl;int pagepro:findreplace() int pos=0; for(int i=1;i blockpos.timer) pos = i; return pos;void pagepro:clear() for(int i=0;iBsize;i+) blocki.num=-1; blocki.timer=0; int pagepro:LRU() int have,space,pos; int count=0; /不缺页计数 for(int i=0;iPsize;i+) have=findhave(i); if(have != -1) count+; blockhave.timer=-1; coutpage find in block!endl; else space=findspace(); if(space != -1) blockspace=pagei; display(); else pos=findreplace(); blockpos=pagei; display(); for(int i=0;iBsize;i+) blocki.timer+; return count;int pagepro:FIFO() int have; int j=0; /j%3 记录替换位置 int count=0; for(int i=0;iPsize;i+) have=findhave(i); if(have!=-1) count+; coutpage find in block!endl; else blockj%3=pagei; j+; display(); return count;int pagepro:OPT() int have,space; int count=0; for(int i=0;iPsize;i+) have=findhave(i); if(have!=-1) coutpage find in block!endl; count+; else space=findspace(); if(space!=-1) blockspace=pagei; display(); else blockfindreplace(i)=pagei; display(); return count;int main() int c=0, select=0; cout*页面置换算法模拟*endl; cout 1.最近最久未使用算法(LRU) endl; cout 2.使用先进先出置换算法(FIFO)endl; cout 3.使用最佳置换算法(OPT) endl; cout 0.退出endl; cout*endl; pagepro p1; coutselect; switch(select) case 1: c=p1.LRU(); couttotal:p1.Psizenfind:cendl; cout缺页率为(double)c*0.1/p1.Bsizeendl; p1.clear(); break; case 2: c=p1.FIFO(); couttotal:p1.Psizenfind:cendl; cout缺页率为(double)c*0.1/p1.Bsizeendl; p1.clear(); break; case 3: c=p1.OPT(); couttotal:p1.Psizenfin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年上海第一人民医院宝山分院医护人员招聘考试备考试题及答案详解
- 2026年上海市第一妇婴保健院西院医护人员招聘考试参考题库及答案详解
- 2026年宁乡市中医医院医护人员招聘笔试备考题库及答案详解
- 2026年中国人民解放军第457医院医护人员招聘笔试备考试题及答案详解
- 2026年景德镇市第三人民医院医护人员招聘笔试备考题库及答案详解
- 2026年衡阳市中心医院医护人员招聘考试备考试题及答案详解
- 2026年江西省中西医结合医院医护人员招聘考试参考题库及答案详解
- 2026年吉林省第二人民医院医护人员招聘笔试备考题库及答案详解
- 2025年徐州市第三人民医院医护人员招聘考试题库附答案详解
- 2026年菏泽市立医院医护人员招聘笔试备考试题及答案详解
- 2025中煤航测遥感集团有限公司招聘58人笔试历年参考题库附带答案详解
- 2026年(完整版)教育学原理试题库(附答案)
- 2026温州瓯海全域空间设计咨询有限公司面向社会招聘2人备考题库及答案详解(新)
- 2026贵阳市创业投资有限公司(第一批)对外招聘3人备考题库及一套完整答案详解
- 2024版慢性鼻窦炎诊断和治疗指南课件
- (2026年)妊娠期甲状腺疾病指南解读课件
- 招远社区工作者招考真题及答案2025
- 2026宁波市中考语文知识点背诵清单练习含答案
- 2026年高考(天津卷)英语试题及答案
- 2026年安徽高考物理试卷题库及答案
- 工业企业较大以上风险岗位安全手册指南
评论
0/150
提交评论