分页(Paging)是操作系统实现虚拟内存管理的核心技术之一,通过将物理内存与逻辑地址空间分割为固定大小的块,解决程序地址空间与物理内存容量不匹配的问题。以下是关键知识点:
1. 分页原理
- 逻辑地址:程序使用的虚拟地址(如
0x1000
~`0x2000`) - 物理地址:实际内存中的地址(如
0x3000
~`0x4000`) - 页表:记录逻辑页号与物理帧号的映射关系(🧠 重点)
- 页大小:通常为 4KB/8KB/16KB(🛠️ 示例:
PageSize=4KB
)
2. 分页作用
- 实现内存保护(不同进程无法访问彼此的内存)
- 支持非连续内存分配(打破物理内存连续限制)
- 提升内存利用率(按需加载页面)
- 简化地址转换过程(📖 点击了解页表结构)
3. 分页实现步骤
- 程序访问逻辑地址 → 2. 页号 + 页内偏移 → 3. 查页表获取物理帧号 → 4. 访问物理地址
4. 常见算法
- FIFO:先进先出(⚠️ 可能产生Belady异常)
- LRU:最近最少使用(🧠 需硬件支持)
- OPT:最优算法(理论模型,不可实现)
5. 分页与虚拟内存
分页是虚拟内存技术的基础,通过页表实现逻辑地址到物理地址的映射,结合换页机制可扩展内存容量(📖 点击了解虚拟内存原理)
📌 提示:分页机制在Linux内核中通过
/proc/pagetypeinfo
可查看详细页表信息