进程:在程序被执行就形成一个进程。为了解决内存稀缺的问题,变成进程的程序就会被分配一个4G的虚拟地址空间。系统为每个进程所分配的4GB虚拟地址空间(32位系统),用来存放进程的虚拟地址,再通过MMU(内存管理单元)将虚拟地址映射到物理内存地址。
1G | 内核 | |
下面3G是用户 | 栈空间(管理权限:系统) | 局部变量,函数形参,自动变量 |
堆空间(管理权限:用户) | malloc,ralloc,calloc分配空间 | |
数据段 | bss段:保存未初始化的全局变量 rodata段:常量 data(静态数据区):初始化的全局变量、static修饰变量 | |
代码段 |