一个进程在执行系统调用exec期间(exec("命令名",参数)),就把可执行文件装入本进程的三个区域中:
·正文区:对应可执行文件的正文段
·数据区:对应可执行文件的数据标识段
·堆栈区:新建立的进程工作区
//每个进程都会有4G的虚拟地址空间,因此,对于每个进程都会有相应的区域。且每个进程空间中的代码段、堆、用户栈、共享库空间(均为用户空间中)等拥有相同的空间相对地址,但是在堆、栈、以及代码段内部对于每个进程来说都是不同的,每个进程都有各自的执行指令和临时、全局的变量。
//在每个进程的生成时,系统会在内核空间中为这个进程分配2页即8K的空间用于存储进程结构,但是这个结构往往只有1K的大小,所以剩下的7K就作为进程的系统堆栈。
//进程在内核态下运行的工作区为内核栈,在用户态下运行的工作区为用户栈,内核栈和用户栈不能交叉使用。
引用自 http://blog.csdn.net/yunsongice/archive/2010/04/10/5470283.aspx