1、Linux内存空间

a. Linux的内存空间有4G的进程地址空间,包括用户空间与内核空间。用户空间分配了3G,而内核空间分配了1G。用户进程通常情况下只能访问用户空间的虚拟地址,不能访问内核空间的虚拟地址。只有用户进程进行系统调用的情况下(代表用户进程在内核态执行),才能够访问到内核空间。

b.用户空间对应进程,所以每当进程切换,用户空间就会跟着变化。而内核空间是由内核负责映射,它并不会跟着进程变化,是固定的。内核空间地址有自己对应的页表,用户进程各自有不同的页表。

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

2、Linux内存空间分布图

3、各个地址空间的数据

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

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

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

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

data段(静态数据区):保存初始化不为0的全局变量或者static修饰的变量。

代码段:保存代码。

4、各地址空间的特点 

栈:栈的权限是由系统决定的。数据具有先进后出、后进先出的特点。如果定义了一个未初始化的局部变量,那么它的值是一个随机值。

堆:堆的权限是由用户决定的,用户通过malloc、rolloc、calloc分配地址空间,并使用free()函数能够释放空间。数据具有先进先出、后进后出的特点。

bss段:如果定义了一个未初始化的全局变量,那么它的值为0。

rodata段:保存常量,常量的值是不允许被修改的。

data段:如果定义了一个未初始化的静态全局变量,那么它的值为0。

代码段:保存代码。

Linux内存空间的分配相关推荐

  1. Linux 内存的延迟分配

    Linux 内存的延迟分配 Linux内存的延迟分配就是在你未使用内存(均值物理内存)的时候,操作系统是不会真正的分配物理内存的, 比如 int *p = (int*)malloc(1024 * 10 ...

  2. UGA由哪几部分组成和PGA上内存空间的分配与回收的方式

    一.UGA由哪几部分组成? 由上述图片可知, 一个会话里如果处理的是SQL语句,那么在shared pool中就有该SQL语句对应的Shared  Areas,该Shared  Areas的类型为Sh ...

  3. PGA内存空间的分配与回收

    一.UGA由哪几部分组成? 由上述图片可知, 一个会话里如果处理的是SQL语句,那么在shared pool中就有该SQL语句对应的Shared  Areas,该Shared  Areas的类型为Sh ...

  4. linux内存分配 连续 足够,linux内存池能分配连续物理内存吗

    中. size参数: 内核是基于页技术分配内存,以最佳的利用系统的RAM. linux处理内存分配的方法是:创建一系列的内存对象池,每个池的内存大小事固定的,处理分配请求时,就直接在包含足够大的内存块 ...

  5. Linux内存管理(六): 分配物理内存alloc_pages

    基于Linux 5.10, 体系结构是aarch64 上文介绍了linux对物理内存的描述,本篇介绍linux下物理页面的分配函数alloc_pages 1.API接口 alloc_pages是内核中 ...

  6. Linux内存管理 (4)分配物理页面

    专题:Linux内存管理专题 关键词:分配掩码.伙伴系统.水位(watermark).空闲伙伴块合并. 我们知道Linux内存管理是以页为单位进行的,对内存的管理是通过伙伴系统进行. 从Linux内存 ...

  7. Linux内存管理--物理内存分配【转】

    转自:http://blog.csdn.net/myarrow/article/details/8682819 1. First Fit分配器 First Fit分配器是最基本的内存分配器,它使用bi ...

  8. 六、操作系统——内存管理的概念(空间的分配与回收、空间的扩充、地址转换、存储保护)

    一.概述 二.操作系统作为系统资源的管理者,当然也需要对内存进行管理,要管些什么呢? 1. 内存空间的分配与回收 连续分配:指为用户进程分配的必须是一个连续的内存空间. 1. 单一连续分配 在单一连续 ...

  9. 11 操作系统第三章 内存管理 内存的基本知识 内存管理 内存空间扩充 连续分配管理方式

    文章目录 1 内存概念 1.1 内存作用 1.2 逻辑地址VS物理地址 1.3 装入的三种方式 1.3.1 绝对装入 1.3.2 可重定位装入 1.3.3 动态重定位装入 1.4 链接的三种方式 1. ...

最新文章

  1. UA MATH567 高维统计IV Lipschitz组合11 社区发现 Spectral Clustering容许的最大随机噪声
  2. 基于python的FFT演示程序
  3. 求助关于exchange2010使用手册
  4. accept 返回0_从0开始理解Vite的主要新特性(一)
  5. 2018年全国多校算法寒假训练营练习比赛(第一场)C. 六子冲(模拟)
  6. Lecture 3:动态规划
  7. html自动登录网页,简单网页登陆代码html
  8. 华为服务器系统图标,华为云 服务器图标 visio
  9. Python 猜数字小游戏 (带闯关关卡)
  10. 1415-2结对分组情况
  11. cesium获取模型高度_180套经典夹具设计方案(附详解+模型),原来夹具设计这么简单!...
  12. 重新理解创业——一个创业者的途中思考
  13. 前端案例:像素鸟小游戏(js+dom操作,完整代码,附案例素材)
  14. win7系统安装 cygwin 的详细步骤
  15. js新打开页面隐藏地址栏 window.open+iframe
  16. mysql 中 in 的用法
  17. Java计算两年后的前一天yyyyMMdd
  18. 华硕主板B85-PRO GAMER关机后鼠标、键盘仍亮着问题的解决办法
  19. 反町隆史和松岛菜菜子
  20. 2006年统计的国内外的一些机器视觉公司汇总

热门文章

  1. 【漏洞通告】Windows 内核信息泄漏漏洞CVE-2021-31955
  2. window.open的详细用法
  3. 前端组件化的实施方案
  4. 实现div元素和文字水平及垂直居中的方法(超简单,适应各种场合)
  5. EasyUI datagrid-detailview
  6. 算法: java十种排序
  7. linux下reboot和shutdown关机命令详解
  8. ASP.NET——真假分页
  9. 计算机图形学期末复习之第四章:基本图形生成算法
  10. linux配置虚拟网卡