计算机操作系统​OPT、FIFO、LRU​ 页面替换算法

embedded/2025/2/28 12:41:43/

以下是 OPT、FIFO、LRU 页面替换算法的核心规则总结与对比:


一、OPT(Optimal Replacement,最佳置换算法)

1. 核心规则
  • 淘汰未来最长时间不会被访问的页面,或永远不再被访问的页面
  • 需要预知完整的页面访问序列,是理论上的最优算法。
2. 实现方式
  • 对每个内存中的页面,查看后续访问序列,计算下一次被访问的时间;
  • 选择下次访问时间最晚的页面(或不再被访问的页面)淘汰。
3. 特点
  • ✅ 理论上缺页率最低;
  • 无法实际实现(需预知未来访问序列);
  • ❗ 主要用于算法性能的理论对比。

二、FIFO(First-In First-Out,先进先出)

1. 核心规则
  • 淘汰最早进入内存的页面,按页面加载顺序维护队列。
2. 实现方式
  • 使用队列记录页面进入内存的顺序;
  • 缺页时淘汰队头(最早进入的页面),新页面加入队尾。
3. 特点
  • ✅ 实现简单(仅需队列);
  • ❌ 可能出现 Belady异常(增加页框数反而导致缺页率上升);
  • ❌ 不区分高频访问页和低频访问页,性能较差。

三、LRU(Least Recently Used,最近最少使用)

1. 核心规则
  • 淘汰最长时间未被访问的页面,优先保留最近被使用的页面。
2. 实现方式
  • 维护每个页面的访问时间戳访问顺序链表
  • 缺页时淘汰时间戳最旧(或链表中最久未访问)的页面。
3. 特点
  • ✅ 符合局部性原理,缺页率通常低于 FIFO;
  • ❌ 实现开销大(需维护时间戳或链表);
  • ❌ 对突发访问模式敏感(可能误判长期低频访问页)。

四、关键对比表

特征OPTFIFOLRU
淘汰目标未来最久不被访问的页最早进入内存的页最久未被访问的页
实现复杂度不可实现(需预知未来)低(队列)高(时间戳/链表)
缺页率最低(理论最优)较高较低(接近OPT)
Belady异常
典型应用场景理论分析资源受限系统(如嵌入式)数据库/Web缓存等需要局部性优化

五、规则总结

  1. OPT

    • 规则:预知未来,淘汰“未来最不需要”的页。
    • 场景:仅用于理论研究。
  2. FIFO

    • 规则:按进入顺序淘汰,“先来先走”。
    • 场景:简单系统,不追求高缓存命中率。
  3. LRU

    • 规则:按访问时间淘汰,“久不用则走”。
    • 场景:需要利用局部性原理的高性能系统。

六、示例辅助理解

假设访问序列为 1, 3, 2, 1, 4, 3, 2, 5,内存容量为3页:

  • OPT淘汰顺序:预知后续访问,选择最远被访问的页(例如首次出现1时保留,因后续会再次访问);
  • FIFO淘汰顺序:按加载顺序淘汰(例如 1 → 3 → 2);
  • LRU淘汰顺序:淘汰最久未使用的页(例如 3 在访问 4 时被淘汰,若之后未使用)。

通过对比可直观看出,LRU 更贴近 OPT 的淘汰逻辑,而 FIFO 与访问频率无关。


http://www.ppmy.cn/embedded/168796.html

相关文章

Spring Boot集成Jetty、Tomcat或Undertow及支持HTTP/2协议

目录 一、常用Web服务器 1、Tomcat 2、Jetty 3、Undertow 二、什么是HTTP/2协议 1、定义 2、特性 3、优点 4、与HTTP/1.1的区别 三、集成Web服务器并开启HTTP/2协议 1、生成证书 2、新建springboot项目 3、集成Web服务器 3.1 集成Tomcat 3.2 集成Jetty 3.3 集成…

Python解决“比赛配对”问题

Python解决“比赛配对”问题 问题描述测试样例解决思路代码 问题描述 小R正在组织一个比赛,比赛中有 n 支队伍参赛。比赛遵循以下独特的赛制: 如果当前队伍数为 偶数,那么每支队伍都会与另一支队伍配对。总共进行 n / 2 场比赛,…

【ISP】畸变校正 LDC

ISP(Image Signal Processor,图像信号处理器)中的 LDC(Lens Distortion Correction,镜头畸变校正)是一种用于校正镜头畸变的图像处理技术。镜头畸变是由于镜头的光学特性导致的图像失真现象,主要…

用数组实现树的存储遍历【复习笔记】

1. 树的基本概念 1.1 树的定义和术语 树是由 n(n≥0)个有限节点组成的一个具有层次关系的集合。当 n0 时,称为空树。在一棵非空树中,有且仅有一个特定的节点称为根节点;其余节点可分为 m 个互不相交的有限集 T1、T2、…

期权帮|国内期权交易投资人做卖出期权价差交易收取的保证金是单边的还是双向的?

锦鲤三三每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 国内期权交易投资人做卖出期权价差交易收取的保证金是单边的还是双向的? 在国内期权交易中,投资人做卖出期权价差交易时收取的保证金通常是单边的,但具…

DeepSeek系统架构的逐层分类拆解分析,从底层基础设施到用户端分发全链路

一、底层基础设施层 1. 硬件服务器集群 算力单元: GPU集群:基于NVIDIA H800/H100 GPU构建,单集群规模超10,000卡,采用NVLink全互联架构实现低延迟通信。国产化支持:适配海光DCU、寒武纪MLU等国产芯片,通过…

【JAVA-数据结构】Lambda表达式

还是老规矩,继续进行,有需要的大家持续关注。 1 背景 Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达…

API测试中如何利用Postman和Apipost进行参数编码与加密

在API测试工作中,开发者和测试人员经常需要对请求中的某些参数进行编码或加密,以满足安全性和系统需求。这些操作可以针对单独的字段,也可以涉及整个请求体的复杂计算。为了解决这些需求,Postman与Apipost这两款流行的API测试工具…