理解页面置换算法

article/2025/10/8 8:41:49

对页面置换算法的理解:

在这里插入图片描述

在进程运行时,若其访问的页面不在内存,而需将其调入,但内存已无空闲空间时,就需要从内存中调出一页程序或数据,送入磁盘的对换区。选择调出页面的算法就称为页面置换算法。好的页面置换算法应有较低的页面更换频率,也就是说,应将以后不会再访问或者以后较长时间内不会再访问的页面先调出。
补充:

  • 缺页率=缺页次数/页面访问次数
  • 抖动现象:刚被换出的页面很快又要被访问,需要将它重新调入,频繁更换页面的现象。
  • Belady异常:当为进程分配的物理块数增大时,缺页次数不减反增的异常现象。注:只有FIFO算法会产生belady异常.

一、最佳置换算法OPT

  • 思想:每次选择淘汰的页面是以后永远不使用,或者在长时间内不再被访问的页面,这样可以保证最低的缺页率。
    (这时就有疑问了,你怎么知道这个页面以后不会被使用呢?所以这种算法不能被实现,早点洗洗睡吧,梦里啥都有。那它存在的意义是啥呢?问得好! 作用就是用来评价其他的算法。一个无情的工具人!)
    举个例子:
    在这里插入图片描述
    过程:首先是访问7,7进入内存块,发生缺页中断;接着访问0、1,OK0、1进入内存块。注意此时的内存块已经满了,下面访问2号页的时候,我们必须选一个页面换出去,采用FIFO算法。我们先看2号页的前一页,内存块里面的页号,然后往后查找,哪一个最晚出现或者是没有出现,就把它换出去。通过查找我们发现是7号最晚出现,说明7 最长时间不被使用,把7换出去,把2换出去. 接着访问0,因为0已经在内存块里面了,不需要换,也不会发生缺页中断。然后访问3号,此时内存块是2、0、1,往后查找,发现是把1换出去。依次往后推。

TIPS:按照置换的规则,往后查找,最后一个出现的页号就是要淘汰的页面

二、先进先出算法FIFO

  • 思想:每次选择淘汰的页面是最早进入内存的页面。
  • 实现方法:把调入内存的页面根据调入的先后顺序排成一个队列,需要换出页面时,选择队头页面即可。(用队列容易做)
    举个例子:
    在这里插入图片描述

三、最近最久未使用和最少使用置换算法LRU

  • 思想:每次淘汰的页面是最近最久未使用的页面。
  • 实现方法:赋予每个页面对应的页表项中,用访问字段记录该页面上次被访问以来所经历的时间t。当需要淘汰一个页面时,选择现有页面中t值最大的,即最近最久未使用的页面。
    举个例子:
    在这里插入图片描述
    过程:前面不需要过多赘述,我们直接看第10列的8号页面,接下来访问3号页面,但是内存块满了,用LRU算法选择最近最久未使用的页面换出去。内存块里是1、8、7、2,从8号页面往前查找最靠前的即7号是最近最久未被使用的,把它换出去。然后以此类推。
  • TIPS: 若要淘汰页面,可以逆向检查此时在内存中的几个页面号,在逆向扫描过程中最后一个出现的页号就是要淘汰的页面。

四、然后我们来对比下OPT和LRU

  • OPT是往后看,看未来;LUR是往前看,看历史。
    在这里插入图片描述
    这个LUR大家一定要牢牢掌握,是各大厂面试重点考察的题哦
    OK大概就酱紫~block太难就不解释了。

http://chatgpt.dhexx.cn/article/JCgwJI34.shtml

相关文章

Python实现页面置换算法

Python实现页面置换算法 FIFO LRU OPT 页面置换——FIFO、LRU、OPT Python实现页面置换算法页面置换算法:一、FIFO(先进先出置换算法)1.算法解析算法原理:当需要淘汰一个页面时,总是选择驻留主存时间最长的页面进行淘…

页面置换算法java_页面置换算法之Clock算法

1.前言 缓冲池是数据库最终的概念,数据库可以将一部分数据页放在内存中形成缓冲池,当需要一个数据页时,首先检查内存中的缓冲池是否有这个页面,如果有则直接命中返回,没有则从磁盘中读取这一页,然后缓存到内…

一文看懂页面置换算法

页面置换算法分为两类 1、局部页面置换算法 最优页面置换算法(OPT、optimal)先进先出算法(FIFO)最近最久未使用算法(LRU,Least Recently Used)时钟页面置换算法(Clock)最不常用算法…

虚拟内存页面置换算法

虚拟内存页面置换算法 虚拟地址空间页表分页式分段式段页式 页面置换算法最优置换算法( OPT)先进先出算法(FIFO)最近最久未使用算法(LRU) 虚拟内存是计算机系统内存管理的一种技术。 它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间&a…

OS之页面置换算法

之前几篇博客记录了OS内存管理的一些知识和技术,接下来将继续深入,介绍一些页面置换算法,这里包括一些我们大家都略有耳闻的算法。 置换算法 当出现缺页故障时,需要从外存调入新的页面到内存中去,而如果此时内存已满…

os 页面置换算法

在进程运行过程中,若其所要访问的页面不在内存,而需把它们调入内存,但内部无空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据送到磁盘的对换区中。但应将哪个页面调出,须根据一定…

内存页面置换算法

前面我们说过了进程的调度算法,今天我们继续来盘内存页面的置换算法,给你整的明明白白的🤪🤪🤪。 内存页面置换算法主要有下面这么几种: 最佳页面置换算法(OPT)先进先出置换算法&a…

三种页面置换算法(详解)

地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断。当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选…

计算机操作系统——页面置换算法

声明:本篇博客参考书籍《计算机操作系统》(西安电子科技大学出版社) 文章目录 一、最佳页面置换算法1、基本知识2、算法思想 二、先进先出(FIFO)页面置换算法1、基本知识2、算法思想 三、最近最久未使用(L…

页面置换算法

文章目录 一、什么是页面置换算法?二、常用的页面置换算法1. FIFO(先进先出算法)2. OPT(最佳置换算法)3. LRU(最近最少使用算法)4. Clock(时钟置换算法)5. LFU(最不常用算法)6. MFU(最常使用算法) 三、程序设计 一、什么是页面置换算法? 进程运行时&…

一文讲懂页面置换算法,带例题详解

目录 ​什么是页面置换算法? ​缺页中断次数和页面置换次数 ​啥子是缺页? ​啥子是中断? ​啥子是缺页中断? ​缺页中断次数 ​最佳置换算法OPT和先进先出置换算法FIFO ​最佳置换算法OPT ​算法思想 ​算法优点 ​算…

回声状态网络ESN(原理)

回声状态网络ESN(原理) 结构特点 网络有3层:输入层 - 隐含层 - 输出层

基于回声状态网络(ESN)的时间序列预测

基于回声状态网络(ESN)的时间序列预测 matlab代码 ID:69100644585791395

【回声状态网络ESN预测】基于粒子群优化回声状态网络ESN实现数据预测附matlab代码

1 简介 由于结构简单,收敛速度快等优点,回声状态网络(Echo State Network, ESN)已被广泛的用于时间序列的预测.针对回声状态网络中随机生成权值矩阵带来的不适用于特定时间序列的问题,本文提出利用粒子群优化算法来优化回声状态网络部分随机权值..实验结果表明,本文提出的方法…

第二十九课.回声状态网络ESN

目录 Echo State NetworkESN的训练与预测关于ESN工作原理的理解 基于Numpy的ESN Echo State Network ESN的训练与预测 回声状态网络(Echo State Network)又称为库计算,即Reservoir Computing,被视为是一种神经网络的扩展。 Res…

【无人机】回波状态网络(ESN)在固定翼无人机非线性控制中的应用(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【MLPs+ESN】利用多层感知机MLPs对经典ESN(回声状态网络)的输出权值计算进行优化的MATLAB仿真

单独的ESN仿真: ESN的运行结果如下所示: 这个部分的误差为: 0.0435 ESN部分就不多做介绍了,你应该了解的,下面我们对ESN和BP改进和极限学习改进分别进行修改和说明,并进行仿真。 ESNBP的仿真: …

回声状态网络(ESN)实现手写数字识别(MNIST)

文章目录 回声状态网络状态方程输出方程分类问题 加载 MNIST 数据集标签 onehot 编码转化成时间序列训练 ESN储备池状态的时空分布测试结果 回声状态网络 状态方程 输出方程 分类问题 加载 MNIST 数据集 from torchvision.datasets import mnist train_set mnist.MNIST(./da…

回声状态网络(ESN)的公式推导及代码实现

1. ESN的任务 给定一段信号: u ( 0 ) , u ( 1 ) , ⋅ ⋅ ⋅ , u ( N t − 1 ) u(0),u(1),,u(N_t-1) u(0),u(1),⋅⋅⋅,u(Nt​−1) 和目标值: v (…

matlab 回声状态网络ESN的时间序列预测

1、内容简介 略 537-可以交流、咨询、答疑 2、内容说明 ESN是Jaeger于2001年提出一种新型递归神经网络,ESN一经提出便成为学术界的热点,并被大量地应用到各种不同的领域中,包括动态模式分类、机器人控制、对象跟踪核运动目标检测、事件监测…