入门 Linux 内存管理,这一篇就够了

说到内存我们都知道,机器插多大的内存条就有多大的内存,这也是我们常说的物理内存。而 linux 为了更好地管理和使用内存,定义了虚拟内存的概念。

虚拟内存

Linux操作系统采用虚拟内存管理技术,使得每个进程都有各自互不干涉的进程地址空间。32位操作系统的虚拟内存是大小为4G的线性虚拟空间,也就是2^32,64位操作系统一般是2^48。用户所看到和接触到的都是虚拟地址,无法看到实际的物理内存地址。

32位操作系统4G的虚拟内存又被认为的分为了两部分:用户空间和内核空间。用户空间占3G,内核空间占1G,即3G到4G之间的1G空间。而64位操作系统则是用户空间和内核空间各占2^47=128T,下文都以32位操作系统进行讨论。

f6cd15162fde1fb46993894a4ce8a4d7.png

当进程需要内存时,从内核获取的地址都是虚拟地址,当需进程要实际访问内存的时候,会由内核的 “请求页机制” 产生 “缺页异常”,从而分配物理内存页。

Linux内核管理物理内存是通过分页机制实现的,它将整个内存划分成无数个4k大小的内存页,作为分配和回收内存的基本单位。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值