博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
进程内存分配
阅读量:5890 次
发布时间:2019-06-19

本文共 1351 字,大约阅读时间需要 4 分钟。

栈区(stack)

  由编译器自动分配和释放,存放函数的参数值,局部变量的值等。其他操作类似于数据结构中的栈。

堆区(heap)

  一般有程序员分配和释放,若程序员不释放,程序结束后可能有OS回收。它和数据结构中的堆不是一回事,分配方式类似于链表。

全局区(静态区static)

  全局变量和静态变量存储在这一区域,初始化的全局变量和静态变量在这一区域,未初始化的全局变量和未初始化的静态变量在相邻的另一区域。程序结束后由系统释放。

文字常量区

  常量字符串存放在这一区域。程序结束后由系统释放。

程序代码区

  存放函数体的二进制代码。

进程内存分配图

高地址

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

低地址

段区名

解释

内容

stack

栈:局部变量

1、在函数内部定义的局部变量(非static型)

2、中断发生时存放的运行环境

room

增长空间:堆向上长,栈向下长

堆和栈动态变化的空间,

1、堆从低地址向上动态增长

2、栈从高地址向下动态增长

heap

堆:动态分配的内存空间

1、程序运行时动态分配的空间,如malloc函数,new等

2、动态释放,如free函数,delete等

other

其他

 

.bss

未初始化的全局变量区

函数外部定义的(全局变量),如

1、   int I;

2、   static int j;

.data

已初始化的全局变量区

1、函数外定义的:static int i = 0;

2、函数内部定义的:static int j;//编译器自动初始化为0

.text

可执行文件

1、程序代码,即当前CPU的二进制机器码

2、常量,如const char msg[]=”hello world\n”

注:

  1、单片机,可执行文件一般没必要加载到内存中,也就不存在.text段。

  2、对于多任务系统来说,一个进程的内存分配往往是动态的,因此堆区实际地址空间可能不连续。

  3、栈区作为存放局部变量的区域,往往可以设置其最大大小,运行时超出定义大小则会产生越界错误(段错误的一种)。

  4、text段在内存中映射为只读,data和bss是可读可写的。

  5、data段和bss段属于静态内存分配。data是初始化过的,bss是未初始化的。

  6、stack保存在函数的局部变量(不包含static声明的变量)、参数以及返回值。

  7、传入的参数和局部变量都在栈顶分布,随着子函数的增长向下增长。

  8、函数的调用地址(函数运行代码),全局变量,静态变量分配载内存的低地址上,而malloc分配的堆在这些内存之上,并向上增长。

       unix系统进程内存占用示意图

 

            代码段内容表

 

参考:

  https://blog.csdn.net/hitman_cs/article/details/70599071

  https://blog.csdn.net/qq792326645/article/details/49783347

  https://blog.csdn.net/love_gaohz/article/details/41310597

转载于:https://www.cnblogs.com/coolYuan/p/9228739.html

你可能感兴趣的文章
[设计模式]简单工厂模式
查看>>
Java正则速成秘籍(二)之心法篇
查看>>
二十:职责链模式详解(类似于spring的hangler处理请求)
查看>>
unittest
查看>>
【HDOJ】2440 Watch out the Animal
查看>>
JSON: Property 'xxx' has no getter method的解决办法
查看>>
c-4
查看>>
Hadoop生态圈-Kafka的新API实现生产者-消费者
查看>>
23种设计模式-观察者模式
查看>>
【音乐分享】天后
查看>>
如何在手机上禁止浏览器的网页滚动
查看>>
li里包含左侧图片右侧文字自适应-------解决文字环绕图片的方法
查看>>
css3 的box-sizing属性理解
查看>>
PIN Block Formats – The Basics
查看>>
逆向工程,生成pojo、xml、mapper
查看>>
[Web 前端] qs.parse()、qs.stringify()使用方法
查看>>
[Web 前端] CSS 盒子模型,绝对定位和相对定位
查看>>
10.19 科大讯飞笔试小记
查看>>
黑客帝国、乱雨纷飞效果
查看>>
css水平垂直居中
查看>>