/proc/buddyinfo
是一个 Linux 特有的系统文件,它包含了关于系统内存页的详细信息,包括每个区域中可用的空闲页面块数量和大小等。
在这个例子中,我们看到 /proc/buddyinfo
文件中有一段输出如下:
Node 0, zone DMA
401 134 94 118 145 36 12 5 2 1 3
这段输出给出了 Node 0
中 DMA
区域的内存碎片信息。具体来说:
DMA
区域是处理低端内存(小于或等于4GB)的区域。- 数字表示该区域中可用的空闲页面块数量,按照从大到小排列。例如,在此例中,有
401
块大小为2KB的连续内存块、有134
块大小为4KB的连续内存块、有94
块大小为8KB的连续内存块,以此类推。 - 这些数字表示可用空闲页面块的数量,并不代表所有页面都是相邻并且可以组成更大或者更小尺寸的连续空间。
因此,在这个例子中,如果你想申请400K 的内存,则需要找到至少一个连续可用空闲页面块能够组成400K的连续空间。如前面的回答所述,你可以使用多个2KB和4KB的页面块来组成一个大于等于400K的连续块。
希望这个解释能够回答你的问题!