Advertisement

Linux内存在分配

阅读量:

1、Linux内存空间

Linux具有4GB的虚拟内存资源,并将其划分为两部分:一部分为4GB的可用区域(其中包含3GB用于用户程序运行),另一部分为1GB用于操作系统核心代码存储。在正常运行状态下,默认情况下所有程序均局限于使用自己的分区内存资源;然而,在特定条件下(如启动阶段或特殊任务场景下),这些限制会被解除以释放更多资源供程序使用

b. 用户空间由进程决定,在每当发生进程切换时会随之发生变化。而内核空间由内核负责映射关系,并不随进程中断而改变(保持固定不变)。每个进程中都有自己的页表区域,并且不同的进程中拥有独立的页表区域。

c.为了保护数据的安全,每个进程的用户空间都是完全独立、互不影响。

2、Linux内存空间分布图

3、各个地址空间的数据

:保存局部变量、函数形参、自动变量。

:保存由malloc、ralloc、calloc分配空间的变量。

bss段 :保存未初始化或初始化为0的全局变量。

rodata段 :在全局数据里保存常量。

data段 (静态数据区):保存初始化不为0的全局变量

全部评论 (0)

还没有任何评论哟~