Linux物理内存管理
1. 每一块实际的物理内存对应一个node(struct pglistdata,pg_data_t),所有的内存由一个链表来管理。
每一个node对应的物理内存被分割成最多三个zone(normal,dma,highmem)(struct zone_struct, zone_t)。
以x86为例:
ZONEDMA First 16MiB of memory
ZONENORMAL 16MiB - 896MiB
ZONEHIGHMEM 896 MiB - End
all the structs are kept in a global mem_map array, which is usually stored at the beginning of ZONE_NORMAL or just after the area reserved for the loaded kernel image in low memory machines.
2. Zone Watermarks
1)watermark指zone状态的三个转折点,在这三个临界值时,系统采用不同的分配策略来满足系统要求与性能最大化的平衡
2)有3个watermark:pages_min, pages_low and pages_high (1:2:3)