分类:
2011-12-13 13:30:19
原文地址:Linux进程+进程间通信IPC 作者:
进程的内存映像
解释
BSS段:在采用段式内存管理的架构中,BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。
数据段:在采用段式内存管理的架构中,数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。
代码段:在采用段式内存管理的架构中,代码段(code segment / text segment)通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读, 某些架构也允许代码段为可写,即允许自修改程序。 在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。
栈(stack):在计算机科学中,是一种特殊的链表形式的数据结构,它的特殊之处在于只能允许在链表的一端(称为栈顶,英文为top)进行添加 和删除操作。另外堆栈数据结构的实现也可以通过数组来完成。栈Stack是存放程序中局部变量的内存区,另外栈stack用来保存函数调用的现场。栈 stack由系统自动分配,用户不需要关心其分配和释放。
堆(Heap):程序运行时供程序员来支配的一段内存。 用于进程运行时动态分配内存。堆的大小不固定,可根据程序运行动态变化。由程序中的new/delete等控制。