进程内存
来源:互联网 发布:硕士论文数据库 编辑:程序博客网 时间:2024/05/17 22:38
进程内存结构
所有的进程都运行在自己的虚拟地址空间中,而每个进程都有自己的内存地址。
每个进程都运行在自己私有的内存空间中(虚拟地址空间)。在32位系统中,4GB的进程地址空间被分成用户空间(0~3GB)和内核空间(3GB~4GB)两部分。
代码段保存可执行文件的操作指令和程序定义的常量全局只读变量(const),字符串常量 多进程能够共享相同的代码段,即当程序被多次执行时,运行的相同程序将共享代码段.
只读数据段
也有将常量、字面值和const声明的变量所存储的位置成为只读数据段,但是要注意**只读数据段** 与生命周期无关
数据段
在代码段的下方,分成初始化数据段和未初始化数据段(BSS段)。
栈内存
保存程序中创建的临时变量。函数调用时,传递的参数也被保存在栈中。在函数调用结束后,其返回值也保存在栈中。栈有先进先出的特点,适合于保护和恢复现场。可以把栈看作是临时存放数据、进行数据交换的内存区域。
从变量来看,局部变量(初始化的和未初始化的,但不包含静态变量)局部只读变量(const)
下面这张图来自《程序员的自我修养》
补充:从编译的角度
static变量无论是全局的还是局部的,都存在初始化数据段,为全局/静态区域,在编译期就为其分配内存。
全局变量同样,但是分是否初始化。
const全局变量存储在只读数据段,编译期最初将其保存在符号表中,第一次使用时为其分配内存,在程序结束时释放,例如:val_c;
const局部变量存储在栈中,代码块结束时释放,例如:val_j。
**const关键字并不能把变量变成常量(C专家编程21页)**const限定符只是说明这个符号不能被修改
0 0
- 进程内存
- 内存_进程内存映射
- 内存与进程管理器
- 搜索内存枚举进程
- 获取进程内存信息
- 进程内存结构
- 内存清零KILL进程
- 进程通信--共享内存
- 查看进程占用内存
- 进程的内存布局
- 进程内存分布
- Anti 进程内存保护
- Linux 进程内存模型
- linux 进程内存解析
- 从内存启动进程
- 程序、进程、内存映射
- 程序、进程、内存映射
- 进程内存地址
- 全自动化的 Android 编译管线
- Android数据库批量操作的性能优化
- tsung 安装
- [D-XI] DFFE 2 随机存储器 点IP-core
- 困难重重重
- 进程内存
- [BZOJ1562][NOI2009]变换序列
- Python filter()函数的用法
- 上海麻辣马资深程序员叶劲峰:我的游戏人生
- python类型比较的3种方式
- onTouch事件机制
- 鉴于Eclipse下在线安装Pydev插件所遇见的问题,及其替代的离线安装的方法
- 直接插入排序
- 黑马程序员-----C语言学习之函数