k-mm
文章平均质量分 81
Morphad
这个作者很懒,什么都没留下…
展开
-
linux内存管理e820map
启动过程中,内核先后使用的内存分配器有:early_res,bootmem,zone allocator;后一个内存分配器启用之后,前一个内存分配器不再使用。early_res是内存最早使用的内存分配器arch/x86/kernel/e820.c: 1 /* 2 * Handle the memory map. 3 * The functions here do原创 2013-05-16 19:02:47 · 3735 阅读 · 0 评论 -
linux内存管理bootmem
bootmem是内核启动时使用的物理内存分配器,根据e820map中的可用内存来初始化bootmem可用内存;bootmem启动之前分配的内存放入early_res预留内存区间中,初始化bootmem时将已经分配出去的内存在bootmem系统中标识为已分配bootmem管理的是页帧,而e820map和early_res管理的是区间e820map注册进bootmem时会对区间做页对齐操作原创 2013-05-16 19:07:48 · 1480 阅读 · 0 评论 -
linux内存管理页帧管理
linux页帧管理采用伙伴系统算法,与bootmem相比有更快的分配速度,能够快速打找到空闲内存;有效的解决外部碎片。页帧的处理代码主要在:mm/page_alloc.c中I.主要数据结构i.页描述符struct page内存管理的核心是页帧管理,内核必须清楚的知道页帧的状态:该页帧是否空闲,是否已经包含代码或数据,是否已经被修改等。每个页帧都有一个页描述符与之对应,用来表示页原创 2013-05-18 18:26:44 · 3603 阅读 · 0 评论