最新消息:

Linux物理内存页面分配

Linux admin 3780浏览 0评论

在用户态C语言程序中,我们对内存分配函数malloc()或calloc()非常熟悉;函数执行成功,就会返回需要的内存起始地址。显然这些函数在在内核态没法运行,在内核态有专门的内存申请/释放函数。

Linux内核中,如何分配和回收内存?空闲内存如何管理?本文以linux 2.6.32-220.el6版本内核源码为基础,介绍Linux内核中如何分配物理内存页面。

目    录
1    概述 
2    内核页面分配与回收API 
3    空闲页面的管理 
3.1    物理内存空间描述
3.2    空闲页面的管理
4    伙伴算法
4.1    Buddy System
4.2    伙伴算法举例
4.2.1    页面分配过程
4.2.2    页面回收过程
4.3    Buddy系统信息查看
5    页面分配
5.1    UMA页面分配
5.2    NUMA页面分配
5.2.1    NUMA策略与cpuset功能
5.2.2    alloc_pages_current()
5.3    __alloc_pages_nodemask()
5.3.1    内存迁移类型与lockdep
5.3.2    __alloc_pages_nodemask()
5.4    get_page_from_freelist()
5.4.1    区域(Zone)水准
5.4.2    Hot-N-Cold页面
5.4.3    get_page_from_freelist()
5.4.4    __rmqueue()
5.5    __alloc_pages_slowpath()
5.5.1    __alloc_pages_direct_compact()
5.5.2    __alloc_pages_direct_reclaim()
6    影响页面分配行为的GFP标志

Linux_Physical_Memory_Page_Allocation

 

转载请注明:爱开源 » Linux物理内存页面分配

您必须 登录 才能发表评论!