内存管理 嵌入式系统实验室 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
内存管理
内存管理 必二级页表 冬动态存储器 Slab算法 大 必非连续存储区 1958 of Science and Techoot 10/20/09 嵌入式0S 嵌入式系统实验室 3157 EMBEDDED SYSTEM LAB口RAT口RY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 3/57 内存管理 二级页表 动态存储器 Slab 算法 非连续存储区
内存管理 必RAM的某些部分永久地分配给内核,用以存放 内核代码以及静态数据 RAM的其余部分称为动态存储器(dynamic memory 1958 nivei of Science and Technol 10/20109 嵌入式0S 嵌入式系统实验室 4157 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 4/57 内存管理 RAM 的某些部分永久地分配给内核,用以存放 内核代码以及静态数据 RAM 的其余部分称为动态存储器( dynamic memory )
Arm存储系统之粗粒度的2级页表 第一级页表: >每一项描述1MB空间的映射关系 >每个条目4B >页表大小:16KB 958 必第二级页表: >页框大小4KB >每个条目大小4B ace and Technoloo >页表大小: 1KB 10/20/09 嵌入式0S 嵌入式系统实验室 5157 EMBEDDED SYSTEM LAB口RAT口RY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 5/57 Arm 存储系统之粗粒度的 2 级页表 第一级页表: 每一项描述 1MB 空间的映射关系 每个条目 4B 页表大小: 16KB 第二级页表: 页框大小 4KB 每个条目大小 4B 页表大小: 1KB
Linux中 冬虚拟地址空间: >KERNEL RAM VADDR: ●3GB以上+TEXT OFFSET(大多为Ox8000) *swapper_pg_dir 1958 >KERNEL RAM VADDR-0x4000,大小为16KB Head.S中:create_page_.tables swapper_pg_dir 嵌入式系统实验室 10/20/09 嵌入式0S 6157 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 6/57 Linux 中 虚拟地址空间: KERNEL_RAM_VADDR : 3GB 以上+ TEXT_OFFSET (大多为 0x8000 ) swapper_pg_dir KERNEL_RAM_VADDR - 0x4000 ,大小为 16KB Head.S 中: __create_page_tables swapper_pg_dir
create_page_tables swapper_pg_dir 虚拟 物理 第0项 0 第3GB对应项 3GB niversity of 0 嵌入式系统实验室 10/20/09 7157 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 7/57 __create_page_tables 3GB 虚拟 物理 0 swapper_pg_dir 第 0 项 第 3GB 对应项
动态存储器 必进程和内核都需要动态存储器 属于稀缺资源 公整个系统的性能取决于如何有效地管理动态存储 器 1958 00c 必对于动态存储器要尽可能做到: >按需分配,不需要时释放 10/20/09 嵌入式0S 嵌入式系统实验室 8/57 EMBEDDED SYSTEM LAB口RAT口RY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 8/57 动态存储器 进程和内核都需要动态存储器 属于稀缺资源 整个系统的性能取决于如何有效地管理动态存储 器 对于动态存储器要尽可能做到: 按需分配,不需要时释放
主要内容 必内核如何给自己分配动态存储器 >页框管理 >小内存管理 大 >非连续存储区管理 4 1958 10/20/09 嵌入式0S 嵌入式系统实验室 9/57 EMBEDDED SYSTEM LAB口RAT口RY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 9/57 主要内容 内核如何给自己分配动态存储器 页框管理 小内存管理 非连续存储区管理
页框管理 必Linux采用页作为内存管理的基本单位 Linux采用的标准的页框大小为4KB >4KB是大多数磁盘块大小的倍数 >传输效率高 >管理方便 1958 例如:512M的物理内存对应于128K个页框 冬算法:伙伴算法 0 10/20/09 嵌入式0S 嵌入式系统实验室 10157 EMBEDDED SYSTEM LAB口RAT口RY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 10/57 页框管理 Linux 采用页作为内存管理的基本单位 Linux 采用的标准的页框大小为 4KB 4KB 是大多数磁盘块大小的倍数 传输效率高 管理方便 例如: 512M 的物理内存对应于 128K 个页框 算法:伙伴算法
请求页框 必内核实现了一种底层的内存分配机制,并提供了 几个接口供其他内核函数调用。 分配: >alloc_pages/alloc_page >get_free_pages/get_free_page/get dma_pages/get zeroed_page 必释放 >free_pages/free_pages/free_page free_page ⊙7c⊙1ec 10/20/09 嵌入式0S 嵌入式系统实验室 11/57 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
10/20/09 嵌入式OS 11/57 请求页框 内核实现了一种底层的内存分配机制,并提供了 几个接口供其他内核函数调用。 分配: alloc_pages/alloc_page __get_free_pages/__get_free_page/__get_dma_pages/get _zeroed_page 释放 free_pages/__free_pages/free_page__free_page