分享

Linux物理内存页面分配 – Linux Kernel Exploration

 昵称3554661 2020-04-03

      在用户态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物理内存页面分配

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多