2017-05-07 63 views
-1

这是我的理解:为什么我们有逻辑内存时需要虚拟内存?

逻辑存储器:没有实际逻辑存储空间,它包括允许在执行过程中被由CPU产生的地址。逻辑存储器的页面被映射到物理存储器的帧(与页面的大小相同)。为了执行进程,在开始执行之前,必须将其所有页面加载到物理存储器中(即写入帧中) 。处理执行后,帧被释放。

我是对的吗? 虚拟内存如何工作不同?

回答

0

参照AMD64架构的东西进行了说明:https://support.amd.com/TechDocs/24593.pdf页54

它们定义: 逻辑地址的地址insided分段的地址空间(实际上不通常使用该模式)。通过将段基地址添加到偏移量,可以将逻辑地址转换为线性地址。

线性地址是程序员看到的地址实际上是64位,因此比可用物理内存多得多。取决于使用情况,操作系统可能会管理从硬盘到硬盘的内存页面交换。程序员对此不以为然。

物理地址是程序员永远不会看到的内存地址。 在读取或写入存储器之前,委派寻呼系统将线性地址与物理地址相关联。

与上述定义相比,您使用术语逻辑地址而不是线性(虚拟)地址。 不是所有的框架都应该加载。可以按需加载。虚拟内存是向程序员展示巨大线性地址空间(2^64字节= 16EBytes =〜1000000TB)的技术,而物理内存则更受限制,并且需要将内存映射到外部存储设备作为硬盘。

0

我是对的吗?虚拟内存如何以不同的方式工作?

根本不是。

有三种类型的地址翻译:

  1. 物理 - >直接的物理地址
  2. 逻辑 - >逻辑地址通过页表
  3. 虚拟重新映射到物理地址 - >物理内存使用二级存储模拟。

除非存在逻辑内存转换,否则虚拟转换不起作用。当存在没有映射到物理页面框架的有效逻辑页面时,虚拟翻译会接管。在这种情况下,虚拟翻译接管在辅助存储中查找数据。

许多计算机文档将虚拟和逻辑混合为虚拟。在虚拟地址空间与物理地址空间相比较大的时代(例如4GB虚拟和8MB物理),这种合并并不显着。

现在,当物理内存扩展到GB范围时,对虚拟转换的需求减少,同时保留逻辑转换。这意味着两者之间的区别变得越来越重要。

相关问题