免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1101 | 回复: 0
打印 上一主题 下一主题

Linux内存管理--基本概念及相关数据结构 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-30 16:50 |只看该作者 |倒序浏览

一、内存管理的基本概念
       1.存储空间
       在32位嵌入式系统中,存储空间的地址范围从0x00000000到0xFFFFFFFF。这4GB存储范围内可以包括以下几种存储空间:
       设备空间(MT_DEVICE)、内部高速SRAM空间(MT_CACHECLEAN)、内部mini cache空间(MT_MINICLEAN)、低端中断向量空间(MT_LOW_VECTORS)、高端中断向量空间(MT_HIGH_VECTORS)、RAM内存空间(MT_MEMORY)、ROM(flash)空间(MT_ROM)
       2.内存空间
       系统的内存空间特指上面的RAM内存空间。
       3.内存页(page)
       Linux是以页(page)为单位来管理物理内存的,一页大小一般等于4096(字节)。页容量越大,系统中可能存在的内存碎片就越多。对应内存页的重要数据结构有struct page。
       4.内存区段(bank)
       一个内存bank表示一块连续内存区域,一个bank一般对应处理器的一个RAM片选管脚上连接的RAM芯片内存空间。对应内存bank的数据结构有struct meminfo。
       5.内存节点(node)
       内存节点是指有一个或者多个内存bank组成的内存集合,如果一个内存节点由多个内存bank组成,这些内存bank之间可以地址连续,也可以不连续,即内存节点内可以存在内存孔洞。对应内存节点的重要数据结构有struct pglist_data(pg_data_t)。
       6.内存页区(zone)
       内存页区是定义在内存节点(node)内的概念,每个内存节点可分为3个内存页区,即DMA页区(ZONE_DMA=0)、Normal页区(ZONE_NORMAL=1)和HighMem页区(ZONE_HIGHMEM=2),三个页区的含义如下:
1)  DMA页区:可以进行DMA操作的RAM内存区域。
2)  Normal页区:不能进行DMA操作的RAM内存区域。
3)  HighMem页区:属于高端内存的区域,高端内存是指系统中的物理内存容量太大,其中高于一定域值的RAM内存页区就是高端内存页区。
对应的内存页区的重要数据结构有struct zone。
7.空闲内存区域(free area)
对应内存空闲区域的重要数据结构有struct free_area。
8.NUMA(Non-Uniform Memory Access)非一致内存访问
二、内存管理相关数据结构
       1.Struct page内存页描述符结构
       struct page {
       page_flags_t flags;  页标志字
       atomic_t _count;   
       atomic_t _mapcount;     
       unsigned long private;   
       struct address_space *mapping;   
       pgoff_t index;               
       struct list_head lru;        
#if defined(WneANT_PAGE_VIRTUAL)
       void *virtual;                 
#endif /* WANT_PAGE_VIRTUAL */
};



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/94019/showart_1915436.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP