Linux内存管理-基本概念及相关数据结构.doc
上传人:sy****28 上传时间:2024-09-13 格式:DOC 页数:2 大小:26KB 金币:14 举报 版权申诉
预览加载中,请您耐心等待几秒...

Linux内存管理-基本概念及相关数据结构.doc

Linux内存管理-基本概念及相关数据结构.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

14 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Linux内存管理-基本概念及相关数据结构一、内存管理的基本概念1.存储空间在32位嵌入式系统中,存储空间的地址范围从0x00000000到0xFFFFFFFF。这4GB存储范围内可以包括以下几种存储空间:设备空间(MT_DEVICE)、内部高速SRAM空间(MT_CACHECLEAN)、内部minicache空间(MT_MINICLEAN)、低端中断向量空间(MT_LOW_VECTORS)、高端中断向量空间(MT_HIGH_VECTORS)、RAM内存空间(MT_MEMORY)、ROM(flash)空间(MT_ROM)2.内存空间系统的内存空间特指上面的RAM内存空间。3.内存页(page)Linux是以页(page)为单位来管理物理内存的,一页大小一般等于4096(字节)。页容量越大,系统中可能存在的内存碎片就越多。对应内存页的重要数据结构有structpage。4.内存区段(bank)一个内存bank表示一块连续内存区域,一个bank一般对应处理器的一个RAM片选管脚上连接的RAM芯片内存空间。对应内存bank的数据结构有structmeminfo。5.内存节点(node)内存节点是指有一个或者多个内存bank组成的内存集合,如果一个内存节点由多个内存bank组成,这些内存bank之间可以地址连续,也可以不连续,即内存节点内可以存在内存孔洞。对应内存节点的重要数据结构有structpglist_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内存页区就是高端内存页区。对应的内存页区的重要数据结构有structzone。7.空闲内存区域(freearea)对应内存空闲区域的重要数据结构有structfree_area。8.NUMA(Non-UniformMemoryAccess)非一致内存访问二、内存管理相关数据结构1.Structpage内存页描述符结构structpage{page_flags_tflags;页标志字atomic_t_count;atomic_t_mapcount;unsignedlongprivate;structaddress_space*mapping;pgoff_tindex;structlist_headlru;#ifdefined(WneANT_PAGE_VIRTUAL)void*virtual;#endif/*WANT_PAGE_VIRTUAL*/};