首页/操作系统/03-memory/页框分配与回收 🔗 在 Obsidian 中打开
操作系统 · 03-memory

页框分配与回收

重要度 ⭐⭐⭐ 页框分配页框回收物理块分配
速查
页框是物理内存中固定大小的块(与页面同大小);分配策略有平均 / 按比例 / 优先级三种;最小页框数由指令集寻址方式决定;全局置换灵活但进程互相影响,局部置换隔离但可能浪费。

速查

项目
页框物理内存中的固定大小块(帧 / frame)
分配策略平均分配、按比例分配、优先级分配
最小页框数由指令集的寻址方式决定
回收时机进程终止、页面换出

核心概念

页框(frame)是物理内存中固定大小的块,与页面大小相同。页框分配是决定每个进程获得多少物理内存块的问题。

分配策略

  1. 平均分配:将可用页框平均分配给各进程
  2. 按比例分配:根据进程大小按比例分配(大进程多,小进程少)
  3. 优先级分配:高优先级进程获得更多页框

最小页框数限制

  • 每个进程至少需要的页框数,由指令集的寻址方式决定
  • 如一条指令可能访问多个页面(指令本身 + 操作数),需要多个页框
  • 保证指令执行过程中不会因为页框不足而无法完成

页框回收

  • 进程终止时,回收其所有页框
  • 页面被换出时,回收对应页框
  • 回收的页框加入空闲页框池

全局置换 vs 局部置换

  • 全局置换:可以从任何进程的页框中选择页面置换(跨进程竞争)
  • 局部置换:只能从本进程的页框中选择置换(进程间隔离)

关键性质

分配策略优点缺点
平均分配简单公平大进程页框不足
按比例分配与进程大小匹配不考虑优先级
优先级分配高优先级进程性能好低优先级进程饥饿
置换范围优点缺点
全局置换灵活,整体缺页率低一个进程可能影响其他进程
局部置换隔离性好可能浪费页框

常见考法

考法解题套路
按比例分配计算各进程页框数 $=$ 进程页面数 $/$ 总页面数 $\times$ 可用页框数
最小页框数由指令集决定(如一条指令访问两个页面 → 至少 2 个页框)
全局 vs 局部全局跨进程选择,局部只在本进程内选择

易错点

注意
  • 全局置换中,一个进程的行为可能影响其他进程(抢占其他进程的页框)
  • 局部置换中,每个进程只能使用自己的页框,但可能导致页框浪费
  • 最小页框数由硬件(指令集)决定,不是由 OS 决定
  • 按比例分配中,比例是按进程大小(页面数)计算的,不是按进程数
  • 实际系统通常使用全局置换——因为更灵活,整体缺页率更低

核心结论

必背
  1. 页框分配决定每个进程获得多少物理内存块
  2. 按比例分配是最常用的策略——按进程大小分配页框
  3. 全局置换灵活但不隔离,局部置换隔离但可能浪费
  4. 最小页框数由硬件指令集的寻址方式决定
  5. 实际 OS 通常使用全局置换 + 按比例分配

记忆卡片

三种页框分配策略?
平均分配、按比例分配、优先级分配。
全局置换和局部置换的区别?
全局可从任何进程选页置换,局部只能从本进程内选。
最小页框数由什么决定?
由硬件指令集的寻址方式决定。
按比例如何计算?
进程页框数 $=$ 进程页面数 $/$ 总页面数 $\times$ 可用页框数。
全局置换的优缺点?
优点:灵活,整体缺页率低;缺点:进程间相互影响。

交互动画 · 页框分配与回收

可用页框 = 12 | 进程 P1(6页,高优先级) P2(4页) P3(2页)
点击分配策略按钮,观察 12 个页框如何分给 P1 / P2 / P3
按比例分配最常用:按进程大小 6:4:2 分配
橙色 = P1、青色 = P2、紫色 = P3、灰色 = 空闲。最小页框数由指令集寻址方式决定,与分配策略无关。

相关知识点

paging-and-segmentation virtual-memory-management

↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。