释放物理页面,分配和释放。释放物理页面是怎么做?所以说分配物理页面也是我们内存管理的最核心的事情。
Linux内核,这个内存页面的分配,它是集伙伴系统算法来管理的。这一点我相信大家都了解过。是不是就是Linux内核,它内核的设置、内存页面的分配,它是基于什么?
内存页面是基于伙伴系统算法来管理的。但是说这个伙伴算法,这个伙伴系统是什么,是操作系统的动态管理的方法。

当我们用户提出申请内存的时候,伙伴系统就分配一块大小合适的内存,给用户反馈,反而认为用户释放的时候它也是回收。在伙伴系统当中内存块是2order次方,就说Linux它最大是max_Orde来表示,一般是11。就说也是什么意思,就说把所有的空闲页面分别组成一个一11块。
一11块的链表是不是?以说这些链表里面可以比如1246、1632一直到1024,它给分配这么多,你超过了就可以报错这个意思。说大家注意这个问题,伙伴系统是怎么怎么进行弄的,大家进行进一步来研究一下是这样的,相当什么?相当就是说在伙伴系统当中内存,内存块是2的什么,所以说你要注意Linux内核是不是。当中的order的它最大值是用什么?用max_ORDER的进行来表示,就表示,但是这个大小是不是大小为多少?值为11要注意。

意思是什么?把所有的空闲的页面直接分成什么?分成一十一个块,是一十一个内存块这个链,就这个意思。

这些内存链表就是内存块链表,它就分别可以包含什么?比如124、816、32*2的,一直到很多,到什么?到1、024个连续的一个什么页面。

意思一直到后面但是说,这些就是1、0001、024个页面,它就对应着一块什么?一块4兆,1、2、3、4、5、6、6,一个8g的一个连续的一个物理内存。
就这么个意思,基本上思路大家展开就行了。
这个伙伴系统空闲页面,它管理比较简单是不是?那么内存管理这个数据结构,它也有个数组来存储。