当前位置: 首页 > news >正文

【linux内核】一级页 二级页

深入解析:一级页表与二级页表的核心原理与对比
——操作系统内存管理的关键设计


一、页表的核心作用
页表(Page Table)是操作系统实现虚拟内存到物理内存映射的核心数据结构。它解决了两个关键问题:

  1. 地址空间隔离:每个进程拥有独立的虚拟地址空间,互不干扰。
  2. 内存碎片管理:将物理内存划分为固定大小的页框(Frame),虚拟内存划分为页(Page),通过页表建立离散映射。

二、一级页表(单级页表)

  1. 结构设计
  • 连续数组结构:将整个虚拟地址空间映射为一个连续数组。
  • 直接索引:虚拟页号(VPN)直接作为数组下标,指向页表项(PTE)。
    虚拟地址 = [ 虚拟页号 (VPN) | 页内偏移 (Offset) ] ↓ 页表[VPN] → 物理页框号 (PPN)
  1. 内存占用
  • 固定预分配:进程启动时一次性分配完整页表。
  • 计算示例(32位系统):
    • 虚拟地址空间:4GB(2³²)
    • 页大小:4KB(2¹²)→ 需 2²⁰ = 1,048,576 个PTE
    • PTE大小:4字节 → 总内存占用 4MB(连续物理内存)。
  1. 优缺点
    | 优点 | 缺点 |
    |------------------|--------------------------|
    | 地址转换速度快(单次查询) | 内存浪费严重(即使未使用也占4MB) |
    | 实现简单 | 需连续大块物理内存(易碎片化) |
    | | 扩展性差(不支持大地址空间) |

三、二级页表(多级页表)

  1. 结构设计
  • 分层索引:
    • 一级页表(页目录PGD):存储指向二级页表的指针。
    • 二级页表(PTE表):存储实际物理页框号。
    虚拟地址 = [ PGD索引 | PT索引 | 页内偏移 ] ↓ ↓ PGD[ i ] → PT[ j ] → 物理页框号
  1. 内存优化机制
  • 一级页表固定分配:
    • 体积小(32位系统仅 4KB),进程启动时分配。
  • 二级页表按需动态创建:
    • 仅当进程访问某内存区域时,才分配对应的二级页表。
    • 示例(进程使用1GB内存):
      • 一级页表:4KB
      • 二级页表:256个 × 4KB = 1MB
      • 总占用:1.004MB(比单级页表节省75%)。
  1. 工作流程(以缺页异常为例)

  2. CPU访问未映射的虚拟地址,触发缺页中断。

  3. 操作系统检查PGD项:

    • 若二级页表不存在 → 分配物理页框,初始化PTE。
    • 若二级页表存在 → 直接添加新PTE映射。
  4. 恢复进程执行,重新访问地址。

  5. 优缺点
    | 优点 | 缺点 |
    |-------------------------|------------------------|
    | 内存占用大幅降低(动态分配) | 地址转换需两次内存访问 |
    | 支持稀疏地址空间 | 实现复杂度增加 |
    | 物理内存可离散分配 | 需TLB缓存降低查询延迟 |


四、关键概念对比总结

特性一级页表二级页表
页表结构单层连续数组两层索引(PGD+PTE)
内存分配启动时固定分配4MBPGD固定4KB,PTE按需分配
物理内存要求需连续大块内存可离散分配小页框
适用场景理论模型/极小内存系统现代32位系统标准方案

操作系统必须在进程初始化时‌一次性分配完整的顶层页表空间,而且顶层只有一页

五、演进意义
二级页表通过空间换时间的权衡,解决了单级页表的内存膨胀问题。其分层设计是支持64位大地址空间(如三级/四级页表)的基础,成为现代操作系统的核心架构。理解其原理,是深入内核内存管理的必经之路。

http://www.jsqmd.com/news/313736/

相关文章:

  • 【linux】零拷贝技术
  • 阿里云上使用docker-compose安装禅道
  • 2026年Agent效率优化技术全景总结:从记忆、工具到规划的三大核心组件,建议收藏!
  • 为什么做游戏一定要选定制开发?
  • 函数模板
  • 尼帕病毒(Nipah virus)是什么?从RNA结构到实验室研究技术详解
  • 226_尚硅谷_家庭收支记账项目介绍
  • wqs 二分入门
  • 二项式反演
  • 一对多,多对一的关系
  • ir_cut打开是对应 白色滤光片吗
  • 【收藏必备】AI算法工程师月薪3万起,大厂扩招浪潮下,这份培养计划助你拿下高薪offer
  • 收藏这份大模型转型攻略:非科班也能月薪翻倍,4大核心能力助你弯道超车
  • NAT 超详细详解
  • 收藏必看!后端工程师转行AI大模型开发,这7个技能让你薪资翻倍!附全套学习资料
  • 交钥匙工程:全球化浪潮下的工程总承包模式革新与市场机遇
  • Youtube Faceless变现:多账号变现与防封指南(2026)
  • Thinkphp和Laravel+vue篮球人才球员管理系统vue
  • Thinkphp和Laravel+vue网上选课推荐系统vue前台的设计与实现_w2l3j
  • 大数据领域数据仓库的分布式数据库应用
  • 达索系统 SIMULIA 2026 新功能直通车|Abaqus HPC新功能介绍
  • Thinkphp和Laravel+vue网约车在线打车拼车管理系统
  • 从草图到智能:达索系统CATIA开启工程开发的最新AI能力
  • Thinkphp和Laravel+vue美特超市进销存管理系统_91crh
  • 大数据领域Hive的多级分桶技术解析
  • Thinkphp和Laravel+vue鞍山市职业技术学院图书借阅推荐系统 提醒 _1o9rw
  • Thinkphp和Laravel+《数字图像处理》教学课程网站(作业,视频,论坛交流)vue
  • 数据最小化原则在大数据应用中的实践
  • 从存储到CPU再到手机:一场涨价引发的科技产业链大洗牌,国产芯片要逆袭?
  • Lambda架构在推荐系统中的应用与实现