计算机程序内存分布

计算机存储器

计算机中有两种存储器,RAM和ROM

RAM:随机存取存储器(random access memory),也叫主存(内存)。它可以随时读写,而且速度很快,掉电容易丢失

ROM:只读存储器(Read-Only Memory),掉电不丢失

cpu可以直接访问RAM中的内容,但不能直接访问ROM中的东西,如果需要,得通过文件系统,将其转移到RAM中再进行执行。

首先为什么32位电脑地址范围是0到4G?

计算机是里都是0101这样的二进制表示

2的32次方是4G

即从0x00000000到0xFFFFFFFF

2的10次方(bit) = 1024B=1KB

2的20次方(bit) =1024KB=1MB

2的30次方(bit)=1024MB=1G,

2的32次方(bit)=4GB

在这4G空间大小中,0~3G属于是用户空间,3G~4G属于是内核空间

RAM内存分布

ram内存分为5个区,也就是上面图中的0~3G

其中

栈区(stack)

存放 局部变量、函数的参数值、函数跳转地址

先进后出,一旦出了作用域就会被销毁

栈区地址从高到低分配

自动管理内存

堆区(heap)

使用的是alloc进行内存分配

堆区的地址是从低到高分配

需要程序员自己管理内存;

全局区/静态区(static)

存放全局变量和静态变量(未初始化过 、初始化过)

其中.bss是未初始化过的,.data是初始化过的

程序结束后由系统释放

常量区

存放常量、字符串

程序结束后由系统释放

代码区

存放程序代码

程序结束后由系统释放

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翔在天上飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值