centos定义页面存储管理的相关数据结构及初始化代码
时间: 2024-05-19 14:11:49 浏览: 56
CentOS中定义页面存储管理的主要数据结构包括:
1. struct page:表示物理内存中的一页,包含了与该页相关的各种信息。
2. struct zone:表示系统中的一个内存区域,包含了该区域的页表、页块位图等信息。
3. struct pglist_data:表示系统中所有内存区域的列表,包含了各个内存区域的指针。
4. struct page_alloc_info:表示页分配器的相关信息,包括了空闲页列表、NUMA节点等信息。
初始化代码如下:
1. 初始化页表:在zone_init中调用init_currently_empty_zone函数,对每个内存区域进行初始化。
2. 初始化页块位图:在zone_init中调用init_currently_empty_zone函数,对每个内存区域进行初始化。
3. 初始化空闲页列表:在page_alloc_init中调用free_area_init_core函数,对每个内存区域的空闲页列表进行初始化。
4. 初始化NUMA节点:在page_alloc_init中调用init_per_zone_pages_min函数,对每个内存区域的NUMA节点进行初始化。
阅读全文