底软驱动 | 一文搞定Linux虚拟内存

为了更有效的管理内存并且少出错,现代操作系统提供了一种对主存的抽象概念,叫做虚拟内存(VM)。虚拟内存提供了三个重要的能力:

  • 1.它将主存(物理内存)看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保留活动区域,并且根据需要在磁盘和主存之间来回交换数据。通过这种方式它高效的使用了主存。
  • 2.他为每个进程提供了一致的地址空间,从而简化了内存的管理。
  • 3.它保护了每个进程的地址空间不被其他进程破坏。
    这篇文章里就带大家了解一下虚拟内存是怎样实现上面的三种重要的能力的。

寻址与地址空间

在实际介绍虚拟内存的功能与实现之前我们必须先来大致了解一下物理寻址,虚拟寻址,物理地址空间,虚拟地址空间的概念。

物理寻址与虚拟寻址

计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组,每个字节都有一个唯一的物理地址。第一个字节物理地址为0,下一个字节为1,在下一个为2,以此类推。不带任何存储器抽象的直接使用物理地址的方式就称作物理寻址(Physical addressing)。

如上图展示了一个物理寻址的示例。该示例的上下文是一条加载指令,它读取从物理地址4处开始的4字节。当CPU执行这条加载指令时,会生成一个有效的物理地址,通过内存总线,把它传递给主存,主存取出物理地址4处开始的4字节,并将它返回给CPU。早期的PC使用的是物理寻址,现代也有部分具有特殊用途的计算机系统会采用这种寻址方式。但是这种寻址方式对于现代的多道程序设计系统却不适用。所以现代处理器使用的是一种称为虚拟寻址(Virtual addres

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TrustZone_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值