Linux 内存管理全面剖析

前言:

还是习惯性的以前言开篇,“深入骨髓”的程序猿思想,干啥事都想从main 开始~~

在Android 项目中接触内存管理相关的有一段时间了,中间看了很多代码,看了忘,忘了看,反反复复,索性就抽点时间整理出来~~

该专栏会尽可能的清晰、完整地总结内存管理相关的知识点,因为时间有限,不可能一次性总结出来,但一定是持续、长期地的完善各个模块和细节。

以付费的形式出现,大致体现在如下几点:

一,专栏覆盖了内存管理的大部分的内容,是一个很全面的完整知识体系的专栏;

二,笔者长期坚持结合代码实际总结知识点,会深入模块细节、流程细节去分析;

三,整个知识点脉络中会将复杂的逻辑过程以流程图、框架图形式同步呈现,方便深入理解;

笔者会长期地坚持总结下去,后期也会根据不同的Linux 版本进行比较分析、补充,敬请期待!! 

1. 内存管理的一些预备知识

2. 物理内存初始化流程

3. buddy 分配器

4. CMA 分配器

5. slab 分配器

6. 缺页异常处理

  • page 概念和数据结构;
  • page 相关的函数使用;

7. 页面回收

8. 内存规整

9. 基础概念

10. 其他

博文中的专业术语:

  • VIVT:Virtual Index Virtual Tag,虚拟索引虚拟标签
  • VIPT:Virtual Index Physical Tag,虚拟索引物理标签
  • PIPT:Physical Index Physical Tag,物理索引物理标签
  • TLB:Translation Look-aside Buffer,转换旁视缓存,转换旁路缓存
  • TTW:Translation Table Walk,转换表遍历
  • TWU:Table Walk Unit,页表遍历单元
  • MMU:Memory Management Unit,内存管理单元
  • EPN:Effective Page Number,有效页帧号
  • RPN:Real Page Number,实际页帧号
  • PFN:Page frame Number,页帧号
  • VA:Virtual Address,虚拟地址
  • PA:Physical Address,物理地址
  • SMP:Symmetric Multiple Processing,对称多处理器
  • UMA:Uniform Memory Access,统一内存访问
  • NUMA:Non-Uniform Memory Access,非统一内存访问

参考:

Linux 内存管理总续

猜你喜欢

转载自blog.csdn.net/jingerppp/article/details/130880495