Please enable JavaScript.
Coggle requires JavaScript to display documents.
Base OS Kernel MemManage - Coggle Diagram
Base OS Kernel
MemManage
内存管理区
课前思考
参考文献
深入理解linux内核
公众号bangLinux
核心概念
页框
page:页描述符
页描述符字段
lru: 最少使用的双向链表的指针
flags
mem_map数组:存放页描述符
页框的请求和释放:6个函数和宏
页框的管理
管理区内页框被伙伴系统处理
内存管理区
ZONE_NORMAL: 16~896M
ZONE_HIGHMEM: 大于896M
ZONE_DMA: 16M的页框
按比例分配给保留的内存池
管理区描述符
内存分配策略
连续的页框 建立 健壮的 高效的分配策略
小内存
slab分配器
对于具有大量内存的大型系统,仅仅建立slab分配器的数据结构就需要大量内存,这时候可以使用经过优化的slub分配器
作用:通用数据结构缓存层
对于微型嵌入式系统,它显得比较复杂,这是可以使用经过优化的slob分配器,它使用内存块链表,并使用最先适配算法
原理理解:类似于CPU和ddr之间加cache;这里是高速缓存和通用数据结构之前,加了slab分配器
大内存
连续的页框
伙伴算法
解决外碎片问题
具体原理
递归检索符合大小的链表
不同的内存管理区有不同的伙伴系统
缺点:分配的页地址都页的倍数
一些机制
关键技术
内核映射
永久内核映射
临时内核映射
高端内存框的内核映射
伙伴系统
slab高速缓存
内存池
MMU硬件
管理内存
虚拟地址到物理地址的转换
处理单位:页
管理页表