为了更有效的管理内存并且少出错,现代操作系统提供了一种对主存的抽象概念,叫做虚拟内存(VM)。虚拟内存提供了三个重要的能力:
- 1.它将主存(物理内存)看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保留活动区域,并且根据需要在磁盘和主存之间来回交换数据。通过这种方式它高效的使用了主存。
- 2.他为每个进程提供了一致的地址空间,从而简化了内存的管理。
- 3.它保护了每个进程的地址空间不被其他进程破坏。
这篇文章里就带大家了解一下虚拟内存是怎样实现上面的三种重要的能力的。
寻址与地址空间
在实际介绍虚拟内存的功能与实现之前我们必须先来大致了解一下物理寻址,虚拟寻址,物理地址空间,虚拟地址空间的概念。
物理寻址与虚拟寻址
计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组,每个字节都有一个唯一的物理地址。第一个字节物理地址为0,下一个字节为1,在下一个为2,以此类推。不带任何存储器抽象的直接使用物理地址的方式就称作物理寻址(Physical addressing)。

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

最低0.47元/天 解锁文章
2622

被折叠的 条评论
为什么被折叠?



