进程与线程问题是程序员在学习编程开发语言需要重点掌握的编程知识之一,而今天我们就一起来了解一下,Linux编程开发中进程映像的执行标准。
什么是进程映像呢?进程映像是执行程序时所需要的可执行文件,通常会包括下面这些东西
代码段(codesegment/textsegment)
又称文本段,用来存放指令,运行代码的一块内存空间
此空间大小在代码运行前就已经确定
内存空间一般属于只读,某些架构的代码也允许可写
在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。
数据段(datasegment)
可读可写
存储初始化的全局变量和初始化的static变量
数据段中数据的生存期是随程序持续性(随进程持续性)
随进程持续性:进程创建就存在,进程死亡就消失
bss段(bsssegment):
可读可写
存储未初始化的全局变量和未初始化的static变量
bss段中的数据一般默认为0
Data段
是可读写的,因为变量的值可以在运行时更改。此段的大小也固定。
栈(stack):
可读可写
存储的是函数或代码中的局部变量(非static变量)
栈的生存期随代码块持续性,代码块运行就给你分配空间,代码块结束,就自动回收空间
堆(heap):
可读可写
存储的是程序运行期间动态分配的malloc/realloc的空间
堆的生存期随进程持续性,从malloc/realloc到free一直存在
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。