深入Linux架构笔记(内存管理)

本文详细探讨了Linux内核的内存管理,包括伙伴系统、内存碎片处理、内存分配与释放,以及slab缓存机制。重点阐述了不同类型的内存页、分配策略以及如何防止和处理物理内存碎片。同时,提到了kmalloc、vmalloc和用户空间malloc的区别,以及在内存紧张时的OOM处理机制。
摘要由CSDN通过智能技术生成

内核初始化期间由初始化内存分配器分配内存,完成后内存分配工作交给伙伴系统
基于伙伴系统的内存管理专注于某个结点的某个内存域,例如,DMA或高端内存域。但所有内存域和结点的伙伴系统都通过备用分配列表连接起来
也就是说内存的每个区域都有自己的伙伴系统,并且通过备用列表连接起来,比如分配普通区域内存是,伙伴系统分配失败,就使用DMA区域的伙伴系统分配内存

内存的碎片处理:
用户空间应用程序的内存一般通过页表映射,所以碎片问题一般只涉及到内核
很长时间以来,物理内存的碎片确实是Linux的弱点之一。尽管已经提出了许多方法,但没有哪
个方法能够既满足Linux需要处理的各种类型工作负荷提出的苛刻需求,同时又对其他事务影响不大。
在内核2.6.24开发期间,防止碎片的方法最终加入内核。在我讨论具体策略之前,有一点需要澄清。
文件系统也有碎片,该领域的碎片问题主要通过碎片合并工具解决。它们分析文件系统,重新排序已
分配存储块,从而建立较大的连续存储区。理论上,该方法对物理内存也是可能的,但由于许多物理
内存页不能移动到任意位置,阻碍了该方法的实施。因此,内核的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值