存储管理:页面置换算法学习任务(测验题要求给出置换页面顺序,缺页次数,缺页率)

一、进程管理:进程调度算法学习任务(测验题要求计算平均周转时间、平均带权周转时间)

1、先进先出法

2、短进程优先法

3、时间片轮转法

4、优先级调度法

进程调度算法学习任务:平均周转时间与平均带权周转时间计算-CSDN博客https://blog.csdn.net/2503_91800161/article/details/167494041https://blog.csdn.net/2503_91800161/article/details/167494041https://blog.csdn.net/2503_91800161/article/details/167494041

二、存储管理:页面置换算法学习任务(测验题要求给出置换页面顺序,缺页次数,缺页率)

5、先进先出法(FIFO)

6、最近最少使用法(LRU)

三、文件管理:磁盘调度算法(测验题要求计算平均寻道长度)

7、先来先服务法(FCFS)

8、最短寻道时间算法(SSTF)

9、SCAN基本扫描算法(电梯算法)

二、存储管理:页面置换算法学习任务

本部分聚焦页面置换算法的核心学习任务,测验题要求能够给出置换页面顺序、缺页次数以及缺页率。下面分别介绍先进先出法(FIFO)和最近最少使用法(LRU)。

5、先进先出法(FIFO)

先进先出法是最简单的页面置换算法,其核心思想是:当需要淘汰页面时,选择最早进入内存的页面进行置换。该算法实现简单,但可能出现Belady异常,即分配的物理块数增加,缺页次数反而增加。

学习要点:

  • 理解FIFO算法的置换顺序:按页面进入内存的时间顺序依次淘汰。
  • 能够手动模拟给定页面访问序列下的置换过程,记录每次缺页时被置换出去的页面。
  • 统计缺页次数,并计算缺页率(缺页次数 / 页面访问总次数)。

6、最近最少使用法(LRU)

最近最少使用法基于局部性原理,当需要淘汰页面时,选择最近最长时间未被访问的页面进行置换。该算法性能较好,但实现开销较大,需要记录每个页面的访问时间。

学习要点:

  • 理解LRU算法的置换顺序:每次淘汰最久未被访问的页面。
  • 能够手动模拟给定页面访问序列下的置换过程,注意区分"最近最少使用"与"最早进入"的区别。
  • 统计缺页次数,并计算缺页率,与FIFO算法进行对比分析。

测验题解题步骤

面对测验题时,建议按以下步骤作答:

  1. 明确题目给定的页面访问序列和物理块数。
  2. 按算法规则逐步模拟置换过程,记录每次缺页时置换出的页面顺序。
  3. 统计缺页次数,缺页率 = 缺页次数 / 页面访问总次数。
  4. 对比不同算法的缺页率,分析各自优缺点。

下面通过一个具体例子演示完整的解题过程。假设页面访问序列为:7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 ,物理块数为 3,页面访问总次数为 20。

(1)FIFO 算法模拟

FIFO 按页面进入内存的时间顺序淘汰最早进入的页面。初始时 3 个物理块均为空,前 3 次访问必然缺页。模拟过程如下:

访问序号 访问页面 物理块1 物理块2 物理块3 是否缺页 置换出的页面
1 7 7 缺页 ---
2 0 7 0 缺页 ---
3 1 7 0 1 缺页 ---
4 2 2 0 1 缺页 7
5 0 2 0 1 命中 ---
6 3 2 3 1 缺页 0
7 0 2 3 0 缺页 1
8 4 4 3 0 缺页 2
9 2 4 2 0 缺页 3
10 3 4 2 3 缺页 0
11 0 0 2 3 缺页 4
12 3 0 2 3 命中 ---
13 2 0 2 3 命中 ---
14 1 1 2 3 缺页 0
15 2 1 2 3 命中 ---
16 0 1 0 3 缺页 2
17 1 1 0 3 命中 ---
18 7 1 0 7 缺页 3
19 0 1 0 7 命中 ---
20 1 1 0 7 命中 ---

FIFO 置换顺序为:7 → 0 → 1 → 2 → 3 → 0 → 4 → 2 → 3 → 0 → 1 → 2 → 3。缺页次数为 13 次,缺页率 = 13 / 20 = 65%。

(2)LRU 算法模拟

LRU 每次淘汰最近最长时间未被访问的页面。模拟过程如下:

访问序号 访问页面 物理块1 物理块2 物理块3 是否缺页 置换出的页面
1 7 7 缺页 ---
2 0 7 0 缺页 ---
3 1 7 0 1 缺页 ---
4 2 2 0 1 缺页 7
5 0 2 0 1 命中 ---
6 3 2 3 1 缺页 0
7 0 2 3 0 缺页 1
8 4 4 3 0 缺页 2
9 2 4 2 0 缺页 3
10 3 4 2 3 缺页 0
11 0 0 2 3 缺页 4
12 3 0 2 3 命中 ---
13 2 0 2 3 命中 ---
14 1 1 2 3 缺页 0
15 2 1 2 3 命中 ---
16 0 1 0 3 缺页 2
17 1 1 0 3 命中 ---
18 7 1 0 7 缺页 3
19 0 1 0 7 命中 ---
20 1 1 0 7 命中 ---

LRU 置换顺序为:7 → 0 → 1 → 2 → 3 → 0 → 4 → 2 → 3 → 0 → 1 → 2 → 3。缺页次数为 13 次,缺页率 = 13 / 20 = 65%。

(3)结果对比

在本例中,FIFO 和 LRU 的缺页次数均为 13 次,缺页率均为 65%,两者表现相同。但在其他访问序列下,LRU 通常优于 FIFO,因为 LRU 基于局部性原理,能更好地保留近期频繁访问的页面。需要注意的是,FIFO 可能出现 Belady 异常,而 LRU 不会出现该异常。

(4)FIFO 与 LRU 算法对比

下表从算法思想、实现复杂度、是否可能发生 Belady 异常、适用场景以及平均缺页率表现等维度,对 FIFO 和 LRU 两种页面置换算法进行系统对比。

对比维度 FIFO(先进先出法) LRU(最近最少使用法)
算法思想 按页面进入内存的时间顺序,淘汰最早进入的页面,只考虑进入时间,不考虑访问频率。 基于局部性原理,淘汰最近最长时间未被访问的页面,兼顾进入时间和访问频率。
实现复杂度 实现简单,只需维护一个先进先出的队列,开销小。 实现较复杂,需要记录每个页面的访问时间或维护访问顺序链表,开销较大。
是否可能 Belady 异常 可能发生。物理块数增加时,缺页次数反而可能增加。 不会发生。物理块数增加时,缺页次数不会增加。
适用场景 适用于页面访问规律性较强、对实现开销敏感、对性能要求不高的简单系统。 适用于局部性特征明显、对缺页率要求较高的系统,如现代操作系统和数据库缓冲管理。
平均缺页率表现 缺页率通常较高,性能一般,且可能因 Belady 异常出现性能退化。 缺页率通常较低,性能优于 FIFO,能更好地保留近期频繁访问的页面。

综合来看,FIFO 的优点是实现简单、开销小,缺点是缺页率偏高且可能出现 Belady 异常;LRU 的优点是缺页率低、性能稳定且不会出现 Belady 异常,缺点是实现复杂、开销较大。在实际系统中,通常优先选择 LRU 或其近似实现(如时钟算法)来获得更好的性能。

相关推荐
minglie141 分钟前
Visual Studio问题
学习
cspttty43 分钟前
2027校招:大数据管理与应用专业如何匹配电商运营与供应链管培生能力要求
大数据·数据库
zcmodeltech1 小时前
沙盘模型控制系统STM32和PLC方案对比:选型逻辑与代码实现
stm32·嵌入式硬件·自动化
ss2731 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 12 PostgreSQL数据目录与重要文件结构
数据库·笔记·postgresql
怒放的生命19911 小时前
前端项目 Docker 打包实操指南
前端·docker·容器
dadaobusi1 小时前
学习: gdb自动捕获调用栈
学习
tedcloud1231 小时前
Docker Compose 部署 Immich:手机照片自动备份与常见故障排查
运维·前端·docker·容器·智能手机·开源·流程图
Song_RsHt1 小时前
Gateway (上):路由与转发,微服务的统一入口
java·笔记·后端·学习·gateway
时间的情敌1 小时前
《WebGIS 前端的成长路线,三维可视化工程师需要掌握什么》
前端·状态模式