内核内存分配器简介

内核内存分配器(Kernel Memory Allocator,KMA)是一个子系统,它试图满足系统中所有部分对内存的请求。

 

其中一些请求来自于内核其他子系统,它们需要一些内核使用的内存,还有一些请求来自于用户程序的系统调用,用来增加用户进程的地址空间。

 

一个好的KMA应该具有以下特点:

  1,必须快。实际上,这是最重要的属性,因为它由所有的内核子系统(包括中端处理程序)调用

  2,必须把内存的浪费减到最少

  3,必须努力减轻内存碎片问题

  4,必须能与其他内存管理子系统合作,以便借用和释放页框

 

基于各种不同的算法技术,已经提出了几种KMA

  资源图分配算法(allocator)

  2的幂次方空闲链表

  McKusick-Karels分配算法

  伙伴系统

  Mach的区域分配算法

  Dynix分配算法

  Solaris的Slab分配算法

 

 

你可能感兴趣的:(内存分配)