美文网首页源码与文档分享
基于C++的请求分页虚拟页面替换算法

基于C++的请求分页虚拟页面替换算法

作者: UlricaLee | 来源:发表于2019-08-03 18:14 被阅读1次

一、需求分析

实现OPT、FIFO、LRU、Clock等页面替换算法。接收用户输入参数,包括程序长度(页面数)、页框个数及页面大小,输出结果采用不同颜色区分命中、替换及直接加入空闲块。

OPT(最佳置换算法):其所选择的被淘汰页面将是以后永不使用的,或许是在最长(未来)时间内不再被访问的页面,但是由于无法预知一个进程在内存中的若干个页面中,哪一个页面是未来最长时间内不被访问的,因而该算法无法实现

FIFO(先进先出页面是换算法):该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰

LRU(最近最久未使用置换算法):只能利用“最近的过去”作为“最近的将来”的近似,因此,LRU置换算法是选择最近最久未使用的页面予以淘汰

Clock:使用的较多的一种LRU近似算法

二、概要设计

FIFO算法:在该模拟系统中,使用队列来存储页面并且按照其到达队列的先后顺序进行排序,因此,每次需要进行页面替换时,便选择队首或者标识符指示其驻留时间最长的页面进行替换

LRU算法:同样使用数组队列来模拟,数组下标指示位置,而数组值则作为标识符来计算该页面自最后一次被访问到现在为止经历了多长时间,当选择被置换的页面时,则扫描该数组队列,找到标识符最大的页面进行替换

Clock算法:同样使用数组队列来模拟,数组下标指示内存位置,而数组值则作为标识符在替换过程中发挥作用。当选择被替换的页面时,则扫描该数组队列,检查数组值,若值为0,则进行替换;若数组值为1,则将数组值置为1,继续扫描下一个数组值。若扫描完毕没有合适的页面进行替换时,则对数组进行第二次扫描

三、详细设计

3.1 设计思想

FIFO算法:先进先出思想,即选择在内存中驻留时间最久的页面给予淘汰

LRU算法:根据页面调入内存后的使用情况作出决策,选择最近最久未使用耳朵页面予以淘汰

Clock算法:设置访问位,循环检查各页面使用情况,是一种LRU近似算法

3.2 模块设计

输入子模块:接收用户的输入,用户的输入共有程序长度(页面数)、页框个数及页面大小三种

模拟页面置换子模块:该模块共有三种函数,分别模拟FIFO算法,LRU算法,Clock算法

点击下载源码

相关文章

  • 基于C++的请求分页虚拟页面替换算法

    一、需求分析 实现OPT、FIFO、LRU、Clock等页面替换算法。接收用户输入参数,包括程序长度(页面数)、页...

  • 虚拟内存技术

    请求分页管理方式 请求分页是基于基本分页系统基础之上,为了支持虚拟存储器功能增加了请求调页和页面置换功能。与普通分...

  • 操作系统第四章【4】虚拟存储管理

    1.虚拟存储器的基本概念 •引入、实现、特征 2.请求分页存储管理方式 •硬件支持、地址变换、分配算法 •页面置换...

  • LRU算法理解(转)

    问题:某虚拟存储系统采用页式内存管理,使用LRU页面替换算法, 考虑下面的页面访问地址流,1 8 1 7 8 2 ...

  • 操作系统笔记:第五章—虚拟存储器

    主要内容: 1.虚拟存储器的基本概念 •引入、实现、特征 2.请求分页存储管理方式 •硬件支持、地址变换、分配算法...

  • 操作系统复习(自用)5

    第九章 虚拟内存:纯请求分页式系统+预调入相对->请求分页式系统;基本实现:离散型存储;什么是虚拟内存 写时复制(...

  • 基于C++的虚拟内存页面管理

    一.实验目的 操作系统课程设计的主要任务是研究计算机操作系统的基本原理和算法,掌握操作系统的进程管理、存储管理、文...

  • 解析Belady现象成因

    Belady现象是操作系统虚拟存储技术下,请求分页技术采用FIFO置换算法所特有的问题。在网上搜了一圈,都在描述该...

  • 冷月手撕408之操作系统(17)-页面分配策略

    操作系统的页面分配策略,是对虚拟存储管理中请求分页的补充;重点掌握驻留集、工作集、抖动概念,选择题可能考 主要的重...

  • Calcite物化识别原理

    SPJA场景说明 物化识别算法分类 基于替换规则的物化识别算法 举例,Query和MV如下: 识别过程如下: 算法...

网友评论

    本文标题:基于C++的请求分页虚拟页面替换算法

    本文链接:https://www.haomeiwen.com/subject/jkqsdctx.html