码迷,mamicode.com
首页 > 系统相关 > 详细

Linux进程的堆

时间:2015-03-07 20:03:14      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:操作系统      linux   

进程的地址空间中有很大的一块区域是被称作“堆”的区域
其地址空间是在进程的.data和.bss的地址增长方向到动态库区域的低地址部分的范围
技术分享
技术分享
堆可以理解成是进程的一大块内存区域(已经分配实际物理内存,但并不是所有的地址空间都分配了物理内存,其大小根据系统类型和版本来定)
用来供进程中的程序动态分配内存空间
通常,进程通过向操作系统批发一大块实际的内存空间交给glibc管理以提高动态内存请求和释放的效率
在程序要请求动态分配比较小的内存空间的时候,glibc从这一大块内存空间中分配之
当程序要请求动态分配较大的内存空间的时候,由操作系统通过相应的系统调用来实现。
因为堆的特点是其中的内存区域可以动态(时机和大小都不确定)申请和释放
所以这一大块的物理内存的组织和管理方式通常有一下几种:
1)双向链表
2)位图
3)对象池

因为这块内存使用的动态性,所以相对栈来说,其性能稍差
Glibc是GNU发布的libc库,即C运行库,即C语言在运行时所依赖的运行环境,在C程序(main函数)运行前就已经加载到内存中

Linux进程的堆

标签:操作系统      linux   

原文地址:http://blog.csdn.net/aganlengzi/article/details/44118843

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!