![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux内核内存申请
文章平均质量分 80
hust_wusen
这个作者很懒,什么都没留下…
展开
-
linux内核申请空间方法总结
内核 内存申请与释放1、申请内存的函数kmalloc(int sitze, int flag) 其中,flag有几种, GFP_KERNEL(可能引起休眠) GFP_USER(表示当前为用户态进程申请空间,可引起休眠) GFP_ATOMIC(用在中断处理历程或其他运行于进程上下文之外的代码中分配内存,不会休眠) GFP_NOF原创 2012-10-26 14:37:53 · 1433 阅读 · 0 评论 -
linux 内核内存管理办法简介(上)
本文从页的分配管理上进行阐述(内存管理区,每CPU页高速缓存和伙伴系统),下篇文章阐述页内空间的分配管理(slab分配器,通用和专用高速缓存)。 1、内存管理区 linux操作系统把内存节点的物理内存划分为三个管理区,分别为:ZONE_DMA,包含低于16MB的内存页框;ZONE_NORMAL,包含16MB---896MB的内存页框;ZONE_HIGHMEM,原创 2012-11-29 11:14:28 · 1088 阅读 · 0 评论 -
linux 内核内存管理办法简介(下)
伙伴系统算法,设和与申请以页框为单位的大块内存请求。而当申请几十字节的内存时,采用伙伴系统,分配一个页框,显然是浪费空间。实际上,内核采用了slab分配器进行管理。 采用slab分配器,是基于以下假设: 1> 内核会经常申请若干种同样大小的内存,如分配一个新的进程描述符,为一个磁盘文件分配一个新的inode对象,dentry对象等 2> 这些对象会经常申原创 2012-12-09 16:56:30 · 1128 阅读 · 0 评论 -
linux内核如何管理内存
在分析了进程的虚拟地址布局,我们转向内核以及他管理用户内存的机制。下图是gonzo的例子: Linux进程在内核中是由task_struct进程描述符实现 的,task_struct的mm字段指向内存描述符mm_struct,他是进程的一个内存执行摘要。如上图所示,mm_struct存储了内存各个段 的开始和结束地址、进程所使用的内存页面数(rss代表常驻集合大小)、使用的转载 2013-04-12 09:11:44 · 1299 阅读 · 0 评论