本文由 AI 自动摘录整理,原始链接:从0到1吃透MMU与分页:内存管理的底层原理
推荐指数:8/10(推荐读原文)
背景
这是一篇系统讲解 MMU(内存管理单元)与分页机制的技术文章。从硬件结构到软件实现,详细解释了虚拟地址到物理地址的映射过程,适合嵌入式开发者、操作系统学习者和想夯实底层基础的技术从业者。
核心观点
MMU 是"翻译官":负责将 CPU 发出的虚拟地址翻译成物理内存能识别的物理地址,同时管理内存访问权限(只读、可读写、可执行等)
分页机制解决内存碎片:将虚拟内存和物理内存划分为固定大小的页(Page)和页框(Page Frame),通过页表建立映射关系,有效解决内存碎片化和地址空间不足问题
TLB 是性能关键:转换后备缓冲器缓存常用的地址映射,命中率直接影响系统性能。利用程序的空间局部性(顺序访问数组)可显著提高 TLB 命中率
多级页表节省内存:Linux 采用四级页表结构(PGD→PUD→PMD→PTE),只有实际使用的页表部分才会分配内存,避免单级页表的巨大内存占用
补充要点
- 缺页异常处理:当访问的页面不在物理内存中时触发,操作系统会从磁盘加载页面并更新页表
- 大页内存(Huge Pages):使用 2MB/1GB 大页可减少 TLB 缺失,提升数据库等内存密集型应用的性能
- 进程内存隔离:每个进程拥有独立的虚拟地址空间,MMU 确保不同进程的内存互不干扰
- 内存映射(mmap):将文件直接映射到进程虚拟地址空间,像访问内存一样访问文件
- ASID/PCID 技术:避免进程切换时刷新整个 TLB,提升多任务性能