进程4G虚拟内存空间的分配

通常我们常说的4G/8G内存是指计算机硬件的内存条是4G/8G,而不是我们今天所谈论的进程4G虚拟的内存。
当一个程序运行时,系统会为每一个进程分配一个4G的虚拟内存空间,用来保存进程运行所需要的各种资源(详细资源列表后面会谈到),并创建task_struct进程控制块,保存进程的属性(进程ID、父进程、进程状态、使用的寄存器等)。
接下来聊一聊4G的虚拟内存是如何分配的:
4G------------- |-----
内核空间 | 特点是由内核管理,用户是不可见的更是进不去的
3G------------- |-----
用户空间 | 特点是由用户管理
0-------------- |------
用户空间的0~3G分为:
3G |----------------------------------|
^ | 栈区 | ------>特点是由系统管理,先进后出,存放的是局部变量,函数形参,自动变量;
|| |----------------------------------|
|| | 堆区 | ------>特点是由用户管理,用户可以使用的malloc申请的空间就是这片空间;
|| |----------------------------------|
|| | 未初始化区域 | ------>保存的是未初始化的全局变量
|| |-----------------------------------|
|| | 全局/静态初始化区域 | ------>保存了初始化的全局变量还有static修饰的变量
|| |---------------------------------- |
|| | 字符串常量 | ------>保存了常量
|| |------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值