




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五请求页式存储管理中常用页面置换算法模拟 一 实验目的 1 了解内存分页管理策略 2 掌握调页策略 3 掌握一般常用的调度算法 4 学会各种存储分配算法的实现方法 5 了解页面大小和内存实际容量对命中率的影响 二 实验内容 1 采用页式分配存储方案 通过分别计算不同算法的命中率来比较算法的优劣 同时也考虑页面大小及内存实际容量对命中率的影响 2 实现OPT算法 最优置换算法 LRU算法 LeastRecently FIFO算法 FirstINFirstOut 的模拟 3 会使用某种编程语言 三 实验原理分页存储管理将一个进程的逻辑地址空间分成若干大小相等的片 称为页面或页 在进程运行过程中 若其所要访问的页面不在内存而需把它们调入内存 但内存已无空闲空间时 为了保证该进程能正常运行 系统必须从内存中调出一页程序或数据 送磁盘的对换区中 但应将哪个页面调出 须根据一定的算法来确定 通常 把选择换出页面的算法称为页面置换算法 Page ReplacementAlgorithms 一个好的页面置换算法 应具有较低的页面更换频率 从理论上讲 应将那些以后不再会访问的页面换出 或将那些在较长时间内不会再访问的页面调出 1 最佳置换算法OPT Optimal 它是由Belady于1966年提出的一种理论上的算法 其所选择的被淘汰页面 将是以后永不使用的或许是在最长 未来 时间内不再被访问的页面 采用最佳置换算法 通常可保证获得最低的缺页率 但由于人目前还无法预知一个进程在内存的若干个页面中 哪一个页面是未来最长时间内不再被访问的 因而该算法是无法实现的 便可以利用此算法来评价其它算法 2 先进先出 FIFO 页面置换算法这是最早出现的置换算法 该算法总是淘汰最先进入内存的页面 即选择在内存中驻留时间最久的页面予以淘汰 该算法实现简单只需把一个进程已调入内存的页面 按先后次序链接成一个队列 并设置一个指针 称为替换指针 使它总是指向最老的页面 3 最近最久未使用置换算法 1 LRU LeastRecentlyUsed 置换算法的描述FIFO置换算法性能之所以较差 是因为它所依据的条件是各个页面调入内存的时间 而页面调入的先后并不能反映页面的使用情况 最近最久未使用 LRU 置换算法 是根据页面调入内存后的使用情况进行决策的 由于无法预测各页面将来的使用情况 只能利用 最近的过去 作为 最近的将来 的近似 因此 LRU置换算法是选择最近最久未使用的页面予以淘汰 该算法赋予每个页面一个访问字段 用来记录一个页面自上次被访问以来所经历的时间t 当须淘汰一个页面时 选择现有页面中其t值最大的 即最近最久未使用的页面予以淘汰 2 LRU置换算法的硬件支持LRU置换算法虽然是一种比较好的算法 但要求系统有较多的支持硬件 为了了解一个进程在内存中的各个页面各有多少时间未被进程访问 以及如何快速地知道哪一页是最近最久未使用的页面 须有以下两类硬件之一的支持 a 寄存器为了记录某个进程在内存中各页的使用情况 须为每个在内存中的页面配置一个移位寄存器 可表示为R Rn 1Rn 2Rn 3 R2R1R0当进程访问某物理块时 要将相应寄存器的Rn 1位置成1 此时 定时信号将每隔一定时间 例如100ms 将寄存器右移一位 如果我们把n位寄存器的数看作是一个整数 那么具有最小数值的寄存器所对应的页面 就是最近最久未使用的页面 如图1示出了某进程在内存中具有8个页面 为每个内存页面配置一个8位寄存器时的LRU访问情况 这里 把8个内存页面的序号分别定为1 8 由图可以看出 第7个内存页面的R值最小 当发生缺页时首先将它置换出去 b 栈可利用一个特殊的栈来保存当前使用的各个页面的页面号 每当进程访问某页面时 便将页面的页面号从栈中移出 将它压入栈顶 因此 栈顶始终是最新被访问页面的编号民 而栈底则是最近最久未使用的页面的页面号 相关代码如下 include include 70120304230321201701书上的例子constintNsize 10 constintPsize 20 typedefstructpage intyemian 页面号intbiaoji 被访问标记 page 页面逻辑结构 结构为方便算法实现设计 pageblock Nsize 物理块pagepage Psize 页面号串voidInit intQString intNsize 初始化内存单元 缓冲区for inti 0 i Nsize i block i yemian 1 找到空闲内存block i biaoji 0 for i 0 i Psize i page i yemian QString i page i biaoji 0 intfindSpace intNsize 查找是否有空闲内存for inti 0 i block a biaoji a i 找到应予置换页面 返回BLOCK中位置 returna voiddisplay intNsize 显示for inti 0 i Nsize i if block i yemian 1 非空闲内存 cout block i yemian cout endl FIFO核心部分 voidFIFO intNsize 先进先出页面置换算法intexist space aition floatscore 0 for inti 0 i Psize i exist findExist i Nsize if exist 1 内存中有该页面 cout 不缺页 endl score 1 统计不缺页次数 else space findSpace Nsize if space 1 找到空闲内存 block space page i display Nsize else aition findReplace Nsize 找到应予置换页面block aition page i display Nsize for intj 0 j Nsize j block j biaoji BLOCK中所有页面biaoji cout 缺页次数为 20 score endl cout 缺页率为 20 score 100 20 endl LRU核心部分 voidLRU intNsize 最近最久未使用置换算法intexist space aition floatscore 0 for inti 0 i Psize i exist findExist i Nsize if exist 1 block exist biaoji 0 cout 不缺页 endl voidOPT intNsize 最优页置换算法intexist space aition floatscore 0 for inti 0 i Psize i exist findExist i Nsize if exist 1 内存中有该页面 cout 不缺页 endl score 1 统计不缺页次数 else space findSpace Nsize if space 1 找到空闲内存 block space page i display Nsize else for intj 0 j Nsize j for intl i l Psize l if block j yemian page l yemian 计算谁是最长时间没使用的 block j biaoji l i break else block j biaoji Psize i aition findReplace Nsize 找到应予置换页面block aition page i display Nsize cout 缺页次数为 20 score endl cout 缺页率为 20 score 100 20 endl voidBlockClear intNsize 块清除for inti 0 i应用FIFO算法 应用LRU算法 应用OPT算法 插入新的页面号引用串 退出 select switch select case0 break case1 cout Nsiz
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甘肃摄影基础知识培训课件
- 农村居民宅基地住房拆迁补偿协议9篇
- 挖掘机施工协议书5篇
- 安全施工培训教学课件
- 福建私人水族工程方案(3篇)
- 东风工程实施方案(3篇)
- 电信工程预算方案(3篇)
- 贵港港平南港区河山作业区华伟码头提档升级工程环评报告
- 防洪治理工程方案(3篇)
- 地灾工程治理方案(3篇)
- 苏教版科学五年级上册全册教案(含反思)
- 餐饮服务与数字化运营 习题及答案 项目六
- 天津地铁设备管理制度范文
- 跨学科整合的小学数学教学设计
- 人教版(2024)七年级下册英语期末复习:完形填空 专题练习题(含答案)
- 《电池管理系统BMS》课件
- DB33 1121-2016 民用建筑电动汽车充电设施配置与设计规范
- DB35∕T 88-2022 伐区调查设计技术规程
- 购物中心楼层调整规划
- 化学前沿研究动态(课件)
- 人教版八年级语文上册《新闻写作》示范公开教学课件
评论
0/150
提交评论