进程中包含5个段,其中有:代码段,数据段,BSS段,堆,栈。
数据段: 存放进程中已初始化的全局数据。
BSS段: 存放进程中未初始化的全局数据。(Block Started by Symbol)
数据段+BSS段统称静态存储区。
栈是由硬件实现的,CPU有特定的进栈和出栈指令。
堆是由函数库(c/c++)提供,一次堆内存的分配会涉及内核态和用户态的切换。
堆和栈统称动态存储区,由于实现级别的不同,使得栈比堆更快。
命令行参数 环境变量 |
栈 |
。 。 。 |
堆 |
BSS段 |
数据段 |
代码段 |
http://blog.youkuaiyun.com/hongdatong/archive/2009/03/29/4034544.aspx