定义

虚拟内存

什么是虚拟内存?

虚拟内存是一种内存管理技术,在这种技术中,可以将辅助内存当作主内存的一部分来使用。虚拟内存是计算机操作系统(OS)中常用的一种技术。

虚拟内存使用硬件和软件使计算机能够补偿物理内存不足,临时从随机访问内存传输数据(内存)到磁盘存储。将内存的映射块映射到磁盘文件使计算机能够处理辅助存储器,尽管它是主要内存。

如今,大多数个人计算机(PC)都有至少8 GB(千兆字节)的RAM。但是,有时候,这一点不足以运行几个节目。这是虚拟内存进入的地方。虚拟内存通过最近尚未使用的数据传送到存储设备(例如硬盘驱动器或固态驱动器)(SSD.).

虚拟内存对于存储非常重要改善系统性能,多任务处理和使用大程序。但是,用户不应依赖虚拟内存,因为它比RAM相当慢。如果OS必须经常运行虚拟内存和RAM之间的数据,则计算机将开始慢下来 - 这被调用抖动

虚拟内存是在物理内存(也称为RAM)非常昂贵的时候开发的。计算机有有限的RAM,因此当多个程序同时运行时,内存最终会耗尽。使用虚拟内存的系统使用硬盘驱动器的一部分来模拟RAM。有了虚拟内存,系统可以加载更大或更大的内存多个程序同时运行,使每个程序都可以像拥有更多空间一样运行,而无需购买更多RAM。

虚拟内存如何工作

虚拟内存使用硬件和软件来操作。当应用程序在使用时,来自该程序的数据使用RAM存储在物理地址中。内存管理单元(MMU)将地址映射到RAM并自动翻译地址。例如,MMU可以将逻辑地址空间映射到相应的物理地址。

如果在任何时候,对于更迫切需要的东西需要RAM空间,可以将数据交换出RAM并进入虚拟内存。计算机的内存管理器负责跟踪物理和虚拟内存之间的班次。如果再次需要该数据,计算机的MMU将使用一个上下文切换恢复执行。

当将虚拟内存复制到物理内存时,操作系统将具有固定数量地址的内存划分为页文件或交换文件.每个页面存储在磁盘上,当需要该页面时,操作系统将其从磁盘复制到主存,并将虚拟地址转换为真实地址。

但是,将虚拟内存交换到物理内存的过程相当缓慢。这意味着使用虚拟内存通常会导致性能显著降低。由于交换,具有更多RAM的计算机被认为具有更好的性能。

虚拟内存类型

计算机的MMU管理虚拟内存操作。在大多数计算机中,MMU硬件被集成到中央处理单元(CPU)中。CPU也生成虚拟地址空间。一般来说,虚拟内存是分页或分割。

分页将内存划分为部分或分页文件。当计算机使用其可用的RAM时,不使用的页面使用交换文件传输到硬盘驱动器。交换文件是在硬盘驱动器上设置的空格,以用作计算机RAM的虚拟内存扩展。当需要交换文件时,使用名为“页面交换的过程”将其发送回RAM。该系统可确保计算机的操作系统,应用程序不会耗尽实际内存。页面文件的最大大小可以是计算机物理内存的1½到四倍。

虚拟内存分页进程使用页表来转换虚拟地址操作系统和应用程序使用MMU使用的物理地址。页面表中的条目指示页面是否在RAM中。如果操作系统或程序没有找到RAM中所需的内容,则MMU以页面故障异常响应丢失的内存引用,以获取操作系统,以便在需要时将页面移动回内存。一旦页面处于RAM,其虚拟地址将显示在页面表中。

分段还用于管理虚拟内存。这种方法将虚拟内存划分为不同长度的段。内存中未使用的段可以移动到硬盘上的虚拟内存空间。分段信息或进程在段表中进行跟踪,该表显示内存中是否存在段,是否已修改此外,分段中的文件系统仅由映射到进程潜在地址空间的段组成。

根据内存的划分方式,分段和分页作为内存模型是不同的;但是,进程也可以组合在一起。在这种情况下,内存被划分为帧或页面。这些段占用多个页面,虚拟地址包括段号和页码。

其他页面替换方法首先包括首先(先进先出)、优化算法和最近最少使用(LRU)页面替换。先进先出方法有内存选择的替代页,已在虚拟地址的时间最长。最优算法方法是根据最长时间后不太可能被替换的页面来选择页面替换;虽然很难实现,但这样可以减少页面错误。LRU页面替换方法是将主存中最长时间未使用的页面替换掉。

如何管理虚拟内存

在操作系统中管理虚拟内存非常简单,因为有一些默认设置可以确定为虚拟内存分配的硬盘空间量。这些设置适用于大多数应用程序和进程,但有时可能需要手动重置分配给虚拟内存的硬盘空间量——例如,对于依赖快速响应时间的应用程序,或者当计算机有多个硬盘驱动器时(hdd).

手动重置虚拟内存时,必须指定要用于虚拟内存的最小值和最大量的硬盘驱动器空间。为虚拟内存分配太少的HDD空间可以导致耗尽RAM的计算机。如果系统不断需要更多的虚拟内存空间,则考虑添加RAM可能是明智的。常见的IS可以通常建议用户不会增加RAM量超过1½倍的虚拟内存。

管理虚拟内存因操作系统而异。因此,IT专业人员应该了解管理物理内存、虚拟内存和虚拟地址的基础知识。

SSD中的RAM单元的寿命也有限。RAM单元的写入次数有限,因此将其用于虚拟内存通常会缩短驱动器的寿命。

使用虚拟内存的好处是什么?

使用虚拟内存的优点包括:

  • 它可以处理两倍的地址作为主内存。
  • 它可以立即使用更多应用程序。
  • 它释放了管理的应用程序共享内存节省了用户在RAM空间耗尽时添加内存模块的麻烦。
  • 当执行只需要程序的一段时,它提高了速度。
  • 由于内存隔离,它提高了安全性。
  • 它允许多个更大的应用程序同时运行。
  • 分配内存相对便宜。
  • 它不需要外部碎片。
  • CPU使用对于管理逻辑分区工作负载非常有效。
  • 数据可以自动移动。
  • 原始流程中的页面可以在创建自身副本的系统调用操作。

除了这些好处,在虚拟化计算环境中,管理员可以使用虚拟内存管理技术将附加内存分配给虚拟机(虚拟机)已经耗尽了资源。这样的虚拟化管理策略可以提高虚拟机的性能和管理的灵活性。

虚拟内存管理器如何分离RAM
这张图片展示了物理内存是如何由虚拟内存管理器分隔的。

使用虚拟内存有哪些限制?

虽然使用虚拟内存有其优势,但它也附带了一些值得考虑的权衡,例如:

  • 如果从虚拟内存运行,应用程序运行较慢。
  • 数据必须在虚拟内存和物理内存之间映射,这需要额外的硬件支持来进行地址转换,从而进一步降低了计算机的速度。
  • 虚拟存储的大小受限制的数量二级存储,以及计算机系统的寻址方案。
  • 如果没有足够的RAM,可能会发生延时,这将使计算机执行较慢。
  • 在使用虚拟内存的应用程序之间进行切换可能需要一些时间。
  • 它会减少可用硬盘空间的数量。

虚拟内存(虚拟RAM)与物理内存(RAM)

在讨论虚拟内存和物理内存之间的区别时,通常最大的区别是速度。RAM比虚拟内存快得多。然而,RAM往往更贵。

当计算机需要存储时,首先使用的是随机存取存储器。虚拟内存比较慢,只在RAM被填满时才使用。

一种比较虚拟RAM和RAM的图表
此图表显示了虚拟RAM(虚拟内存)如何与RAM(物理内存)进行比较。

用户可以通过购买和安装更多RAM芯片来主动向计算机添加RAM。如果由于频繁发生内存交换而导致速度变慢,这一点非常有用。RAM的数量取决于计算机上安装的内容。另一方面,虚拟内存受计算机硬盘驱动器大小的限制。虚拟内存设置n通常通过操作系统进行控制。

此外,RAM使用交换技术,而虚拟内存使用分页。虽然物理内存仅限于RAM芯片的大小,但虚拟内存受硬盘大小的限制。RAM还可以直接访问CPU,而虚拟RAM则不执行。

虚拟内存的历史

在开发虚拟内存之前,计算机具有RAM和辅助存储器。早期计算机使用用于主存储器的磁芯存储器和磁鼓,用于其辅助存储器。电脑记忆昂贵,通常在20世纪40年代和20世纪50年代供不应求。随着计算机程序的大小和复杂性,开发人员必须担心他们的程序将使用所有计算机的主内存并用完内存。

在早期,程序员使用一种称为覆盖的进程来运行大于可用内存的程序。程序中不再持续使用的部分被设置为覆盖层,当需要时,将覆盖内存中现有的覆盖层。它需要大量的编程来实现覆盖工作,这是自动虚拟内存开发的关键推动力。

德国物理学Fritz-RudolfGüntsch已被认为是在1956年开发虚拟记忆的概念 - 尽管这一点已经有争议。然而,Güntsch确实最终描述了一种形式高速缓存

虚拟内存系统的第一个明确实例来自英格兰曼彻斯特的曼彻斯特大学,试图为阿特拉斯计算机开发一级存储系统。用于分页以将虚拟地址映射到程序员到主存储器上的系统。阿特拉斯于1959年开发,后期于1962年开发。

1961年,Burroughs Corp.这是一个具有虚拟内存的商业计算机由Burroughs Corp.此版本的虚拟内存使用分段,而不是寻呼。

1969年,IBM研究人员展示了虚拟内存覆盖系统的工作优于早期的手动系统。直到这一点,仍然存在争论。20世纪70年代的大型机和小型计算机通常使用虚拟内存。虚拟内存技术未包含在早期的PC中,因为开发人员认为内存不足不会是这些机器中的问题。这种假设证明了不正确。英特尔在1982年在80286处理器的保护模式下引入了虚拟内存,并在1985年出现80386时的寻呼支持。

了解什么因素控制和限制桌面内存。同时,学习最好的方法在Windows 10 OS上管理虚拟内存

这是最近更新的2021年7月

继续阅读有关虚拟内存的内容

挖掘更深入存储虚拟化

搜索灾难恢复
搜索数据备份
搜索融合基础设施
关闭
Baidu