Linux内存分配伙伴算法空闲链表、位图与内存对应关系图解

      网上能够找到的关于Linux内存分配伙伴算法的介绍不是很多,而且大多是进行较为抽象的介绍。为了能够让初学者能够快速建立起伙伴算法中提及的空闲链表、位图与内存间的对应关系,我做了以下几张图片,希望能够给初学者带来帮助。需要指出的是,我在本文中未对相关图示做更多的解释,请初学者参照网上的理论介绍理解其中的含义。

      为了举例方便,我假定最大块为2G,最小块为256M(比较夸张,只是为了便于说明问题)。

      初始状态,如图1-1所示。

     

图1-1 初始状态

        分配512M内存,如图2-1,2-2所示。

图2-1 分配512M内存第一步

图2-2 分配512M内存第二步

        分配256M内存,如图3-1所示。

 

图3-1 分配256M内存

        回收算法与分配算法相逆,本文旨在向初学者介绍空闲链表、位图与内存的对应关系,故不再做其它操作的介绍。

 

 

                                     

     

你可能感兴趣的:(算法与程序设计)