aganlengzi的专栏

其地址空间是在进程的.data和.bss的地址增长方向到动态库区域的低地址部分的范围

堆可以理解成是进程的一大块内存区域(已经分配实际物理内存,但并不是所有的地址空间都分配了物理内存,,其大小根据系统类型和版本来定)

用来供进程中的程序动态分配内存空间

通常,进程通过向操作系统批发一大块实际的内存空间交给glibc管理以提高动态内存请求和释放的效率

在程序要请求动态分配比较小的内存空间的时候,glibc从这一大块内存空间中分配之

当程序要请求动态分配较大的内存空间的时候,由操作系统通过相应的系统调用来实现。

因为堆的特点是其中的内存区域可以动态(时机和大小都不确定)申请和释放

所以这一大块的物理内存的组织和管理方式通常有一下几种:

1)双向链表

2)位图

3)对象池

因为这块内存使用的动态性,所以相对栈来说,其性能稍差

Glibc是GNU发布的libc库,即C运行库,即C语言在运行时所依赖的运行环境,在C程序(main函数)运行前就已经加载到内存中

理想的路总是为有信心的人预备着

aganlengzi的专栏

相关文章:

你感兴趣的文章:

标签云: