Linux物理内存描述三个层级
来源:互联网 发布:康宏爱飞 知乎 编辑:程序博客网 时间:2024/05/20 23:31
Linux物理内存描述三个层级的struct:
pglist_data//描述内存节点
zone//描述节点内的分区,有normal、DMA、highmem
page//描述一页,通常为4K大小
各结构体成员的具体含义,详见下面代码中的注释,英文注释清晰处请直接参考
/* * The pg_data_t structure is used in machines with CONFIG_DISCONTIGMEM * (mostly NUMA machines?) to denote a higher-level memory zone than the * zone denotes. * * On NUMA machines, each NUMA node would have a pg_data_t to describe * it's memory layout. * * Memory statistics and page replacement data structures are maintained on a * per-zone basis. */struct bootmem_data;typedef struct pglist_data { struct zone node_zones[MAX_NR_ZONES];//该节点内的内存区struct zonelist node_zonelists[MAX_ZONELISTS];//节点的备用内存区,也就是所有节点的内存区链表,当该节点没有可用的内存时,就从备用内存区分配;事实上,除非分配内存时指定了GFP_THISNODE标志,否则均从备用内存区内存区分配,选择的优先顺序是Highmem>Normal>DMA/*可用内存区数目*/ int nr_zones;#ifdef CONFIG_FLAT_NODE_MEM_MAP/* means !SPARSEMEM */struct page *node_mem_map;//本节点第一个页面的描述符指针#endif#ifndef CONFIG_NO_BOOTMEMstruct bootmem_data *bdata;//内核启动阶段Bootmem分配器用来管理内存的struct,其成员node_bootmem_map是bit map指针,每一个bit描述一个页是否已经被使用#endifunsigned long node_start_pfn;//该节点内起始页面的帧号,即该节点在全局mem_map中的indexunsigned long node_present_pages; /* total number of physical pages */unsigned long node_spanned_pages; /* total size of physical page range, including holes */int node_id;wait_queue_head_t kswapd_wait;//该节点的页交换守护进程的等待队列,在节点中的页需要换出时使用struct task_struct *kswapd;//负该节点的页交换的守护进程int kswapd_max_order;//最大可交换的页数} pg_data_t;
0 0
- Linux物理内存描述三个层级
- linux物理内存描述
- linux物理内存描述
- linux物理内存描述
- 物理内存的描述
- 描述物理内存
- linux内存管理之内核对物理内存的描述
- Linux内存管理之内核对物理内存的描述
- linux物理内存描述(接近新版本内核)
- 内存管理(1)物理内存描述
- linux板级内存管理之-物理内存描述的两种实现方法
- linux的物理内存
- linux物理内存探测
- Linux物理内存概述
- Linux读写物理内存
- linux物理内存探测
- linux 物理内存读写
- Linux物理内存概述
- Oracle安装(1)静默方式创建Oracle数据库
- asp.net控件简单总结
- PC上为嵌入式开发算法时遇到的麻烦解决
- 位操作与权限
- hdu 3397 线段树成段更新
- Linux物理内存描述三个层级
- 【安卓笔记】-----图片特效之怀旧风格
- mysql配置之主从复制
- asp.net 三层架构
- 初始化顺序
- 黑马程序员_基础语法
- GDAL数据集官方说明
- 【转载】计算机视觉领域的一些牛人博客,研究机构等的网站链接
- UVA 672 - Gangsters(dp)