news 2026/4/30 15:05:46

【linux内核】一级页 二级页

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【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位大地址空间(如三级/四级页表)的基础,成为现代操作系统的核心架构。理解其原理,是深入内核内存管理的必经之路。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/27 23:32:16

【TF-A与u-boot烧录的SD卡的操作流程】

整体背景:TF 卡启动 u-boot 的核心目的当开发板上没有可启动的系统(比如 “变砖”),或者需要调试启动流程时,我们可以通过 TF 卡启动到 u-boot 终端,进行救砖、烧写镜像等操作。整个流程分为 TF 卡分区 和 …

作者头像 李华
网站建设 2026/4/23 12:51:58

ir_cut打开是对应 白色滤光片吗

ir_cut打开是对应 白色滤光片吗 ir_cut打开------>对应白色滤光片ir_cut关闭------>对应红色滤光片

作者头像 李华
网站建设 2026/5/1 7:27:31

Thinkphp和Laravel+vue网约车在线打车拼车管理系统

目录 ThinkPHP 和 Laravel Vue 网约车管理系统摘要技术栈与框架特点核心功能模块技术实现要点优势与适用场景典型代码片段(Laravel Vue)扩展方向 项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理 ThinkPHP 和 Laravel Vu…

作者头像 李华
网站建设 2026/5/1 6:28:43

Thinkphp和Laravel+vue鞍山市职业技术学院图书借阅推荐系统 提醒 _1o9rw

目录 ThinkPHP与LaravelVue的技术选型对比鞍山市职业技术学院系统功能设计前端Vue集成方案提醒功能实现逻辑性能优化建议部署注意事项 项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理 ThinkPHP与LaravelVue的技术选型对比 ThinkPHP作为国产PHP框…

作者头像 李华
网站建设 2026/5/1 5:53:10

交换系统评估:支撑IT外包公司为客户交付需求驱动的交换评估方案

评估接入系统路由质量、管理传输需求、审核路由系统配置 摘要 面向设备集成商、IT外包公司、宽带组网运营商及楼宇企服资源方等技术服务伙伴,我们结合可视化运行监控系统,提供系统规划、标准化交付与平台化运维支撑,助力其为客户实现高确定…

作者头像 李华
网站建设 2026/4/17 13:32:38

人工智能数据分析科学家:20个月系统培养大纲 (1.0版)【20260128】002篇

文章目录 AI驱动的数据分析:从理论建模到全栈可视化落地 全栈数据分析师的进阶实战指南 前言(扩容版) 第一部分 基石:AI数据分析与全栈可视化基础 【板块学习目标】 第1章 企业级数据工程与数据治理(扩容10倍版) 1.1 数据采集:从单源到分布式多源采集 1.1.1 入门:基础数…

作者头像 李华