zone 为了应付这种限制,Liux把具有同样性质的物 理内存划分成一一区(zones) ?Linux把物理存储器划分为4个区 >ZONE DMA >ZONE DMA32(未见用) >ZONE NORMAL >ZONE HIGHMEM ence and Technoloo 冬参见枚举类型zone_type 嵌入式系统实验室 10/20/09 嵌入式0S 17157 EMBEDDED SYSTEM LAB口RAT口RY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 17/57 zone 为了应付这种限制, Linux 把具有同样性质的物 理内存划分成——区 (zones) Linux 把物理存储器划分为 4 个区 ZONE_DMA ZONE_DMA32 ( 未见用) ZONE_NORMAL ZONE_HIGHMEM 参见枚举类型 zone_type
ZONE DMA和ZONE NORMAL区 包含存储器的“常规”页,通过把它们映射到线 性地址空间的3GB以上,内核就可直接访问 Y而ZONE HIGHMEN区 中包含的存储器页面不能由内核直接访问 每个zone使用struct zone表示 >关键:free_area Science and Technology o 嵌入式系统实验室 10/20/09 嵌入式0S 18/57 EMBEDDED SYSTEM LAB口RAT口RY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 18/57 ZONE_DMA 和 ZONE_NORMAL 区 包含存储器的“常规”页,通过把它们映射到线 性地址空间的 3GB 以上,内核就可直接访问 而 ZONE_HIGHMEN 区 中包含的存储器页面不能由内核直接访问 每个 zone 使用 struct zone 表示 关键: free_area
mem_map数组 冬所有物理页框的描述符,组织在nem map的数 组中 1 en map[门 page0 pagel page2 page3 page4 Dage5 page6 ofChina physical memory 嵌入式系统实验室 10120/09 嵌入式0S 19/57 EMBEDDED SYSTEM LAB口RAT口RY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 19/57 所有物理页框的描述符,组织在 mem_map 的数 组中 mem_map 数组 . . . . . . . . . p h y s i c a l m e m o r y m e m _ m a p [ ] p a g e 0 p a g e 1 p a g e 2 p a g e 3 p a g e 4 p a g e 5 p a g e 6 . . . .
必mem map的定义和初始化 arch/arm/mm/mmu.c start kernel>setup_arch >paging_init >bootmem_init →bootmem init node→free_area_init_node →alloc_node_mem_map mm/page_alloc.c 1958 页描述符将会占用很大的一段空间 Mem_map、node、zone之间的关系 MScience and Technol 嵌入式系统实验室 10120109 嵌入式0S 20157 EMBEDDED SYSTEM LAB口RAT口RY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 20/57 mem_map 的定义和初始化 start_kernelsetup_archpaging_initbootmem_init bootmem_init_nodefree_area_init_node alloc_node_mem_map 页描述符将会占用很大的一段空间 Mem_map 、 node 、 zone 之间的关系 arch/arm/mm/mmu.c mm/page_alloc.c