分配原则

内核会高速且频繁的对内存进行分配和释放,且只能分配完整的页帧。标准库将内核的页帧拆分为更小的单位分配给进程。

伙伴系统

内核大多时候都会采样一种古老又历经检验的技术分配连续内存页:伙伴系统。
系统中的内存块总是俩俩分组,一组中的两个内存块称作伙伴。伙伴的分配是独立的。若两者都空闲,则会合并为更大的内存块。

slab缓存

内核经常需要比页帧还要小的内存块,所有需要将伙伴系统划分为更小的部分。

  • 对频繁适用的对象,内核对不同大小的对象定义了实例的缓存。使创建对象时可以快速的分配。

页面交换和页面回收

页面交换利用磁盘空间作为扩展内存,增大了系统的可用内存。将不经常使用的页写入硬盘,需要使用时再读进内存。提升了内存的使用效率,缺点是产生了缺页异常机制。
页面回收即使将内存映射被修改的内容与底层块设备同步,亦称为“数据回写”,有点像SSD的高速缓存。

Last modification:June 18, 2022
If you think my article is useful to you, please feel free to appreciate