什么是虚拟内存?它是如何扩展物理内存的?

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

虚拟内存使用硬件和软件来使计算机能够补偿物理内存的不足,暂时将数据从随机存取存储器 ( RAM ) 传输到磁盘存储。将内存块映射到磁盘文件使计算机能够将辅助内存视为主内存。

如今,大多数个人计算机 (PC) 都配备至少 8 GB(千兆字节)的 RAM。但是,有时这不足以同时运行多个程序。这就是虚拟内存的用武之地。虚拟内存通过将最近未使用的数据交换到存储设备(例如硬盘驱动器或固态驱动器 (SSD))来释放RAM。

虚拟内存对于提高系统性能、多任务处理和使用大型程序非常重要。然而,用户不应该过度依赖虚拟内存,因为它比 RAM 慢得多。如果操作系统必须过于频繁地在虚拟内存和 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,其虚拟地址就会出现在页表中。

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

分段和分页作为内存模型的不同之处在于内存的划分方式;然而,这些过程也可以组合。在这种情况下,内存被分为帧或页。段占用多个页,虚拟地址包括段号和页号。

其他页面替换方法包括先进先出(FIFO)、最优算法和最近最少使用( LRU )页面替换。FIFO 方法让内存选择替换在虚拟地址中停留时间最长的页面。最优算法方法根据最长时间后不太可能被替换的页面来选择页面替换;尽管实现起来很困难,但这会减少页面错误。LRU页面替换方法替换主存中最长时间未被使用的页面。

如何管理虚拟内存

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

手动重置虚拟内存时,必须指定用于虚拟内存的最小和最大硬盘空间量。为虚拟内存分配太少的 HDD 空间可能会导致计算机内存不足。如果系统持续需要更多虚拟内存空间,那么考虑添加 RAM 可能是明智之举。常见操作系统通常建议用户不要将虚拟内存增加到超过 RAM 量的 1 ½ 倍。

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

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

使用虚拟内存有什么好处?

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

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

除了这些好处之外,在虚拟化计算环境中,管理员还可以使用虚拟内存管理技术为资源耗尽的虚拟机 ( VM ) 分配额外的内存。这种虚拟化管理策略可以提高VM性能和管理灵活性。

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

尽管使用虚拟内存有其好处,但它也带来了一些值得考虑的权衡,例如:

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

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

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

当计算机需要存储时,首先使用RAM。虚拟内存速度较慢,仅在 RAM 已满时才使用。

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

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

虚拟内存的历史

在虚拟内存被开发出来之前,计算机有 RAM 和辅助内存。早期的计算机使用磁芯存储器作为主存储器,使用磁鼓作为辅助存储器。早在 20 世纪 40 年代和 20 世纪 50 年代,计算机内存价格昂贵,而且通常供应短缺。随着计算机程序的大小和复杂性不断增加,开发人员不得不担心他们的程序会耗尽计算机的所有主内存并耗尽内存。

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

德国物理学家 Fritz-Rudolf Güntsch 被认为在 1956 年提出了虚拟内存的概念,尽管这一点一直存在争议。然而,Güntsch 最终描述了一种高速缓冲存储器的形式。

虚拟内存系统的第一个明显的真实实例来自英国曼彻斯特的曼彻斯特大学,该大学试图为 Atlas 计算机开发单级存储系统。该系统使用分页将程序员的虚拟地址映射到主存储器上。Atlas 于 1959 年开发,并于 1962 年投入使用。

1961 年,Burroughs Corp 发布了第一台具有虚拟内存的商用计算机。该版本的虚拟内存使用分段,而不是分页。

1969 年,IBM 研究人员证明虚拟内存覆盖系统比早期的手动系统运行得更好。直至目前,对此仍存在争议。20世纪70年代的大型机和小型机普遍使用虚拟内存。早期的 PC 中并未包含虚拟内存技术,因为开发人员认为内存不足在这些机器中不会成为问题。事实证明这个假设是错误的。Intel于1982年在80286处理器的保护模式下引入了虚拟内存,并在1985年80386问世时引入了分页支持。

本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
(0)
上一篇 2023年7月6日 下午6:56
下一篇 2023年7月6日

相关推荐

  • 如何在不丢失数据的情况下更换笔记本电脑硬盘

    有人问:“如果更换笔记本电脑的硬盘,我的数据会丢失吗?” 答案是肯定的。笔记本电脑中的所有数据,包括 Windows 操作系统、程序、文件等,都存储在其内部硬盘驱动器上。如果取出硬…

    2023年8月8日
  • 您应该了解的基本Windows CMD命令

    Windows 命令提示符可能看起来令人畏惧,因为它的界面简单,缺乏常见的 Windows 帮助提示,但它实际上是 Windows 工具库中最强大的工具之一。 Windows 10…

    2023年7月10日
  • 如何在没有密码的情况下获得Windows管理员权限

    在 Windows 电脑上,如果没有管理员权限,您将无法执行很多任务。只有作为管理员才能拥有电脑的完整使用权限。如果您曾为登录 Windows 的管理员帐户设置过密码,但后来忘记了…

    2023年8月13日
  • 如何解决Windows音频驱动程序问题

    有时,Windows 中的计算机音频会突然停止工作。重新启动电脑可以解决这些问题,但这并不方便,而且并不总是有效。在花时间深入研究之前,值得先进行一些基本的故障排除。下次当您在 W…

    2023年7月14日
  • 电脑重置出厂设置的弊端和替代方案

    当您从戴尔、惠普或宏碁等制造商那里购买计算机时,它会被不必要的垃圾(如试用软件和难看的定制)所压垮。这被称为“臃肿软件”,您不必忍受它。 一段时间后,计算机可能运行缓慢或抛出错误,…

    2023年7月17日
  • 电脑风扇随机加速、减速或停止

    电脑内部风扇的作用是控制内部组件的温度,如CPU、GPU等。它们有助于维持组件的温度和PC机箱的温度。当压力变高时,风扇的速度也会增加。当温度下降时,风扇会自动减慢速度。如果您的电…

    2024年1月17日
  • 如何重新安装WIN键盘驱动程序,几种方法解决问题

    您的电脑键盘是否突然开始出现故障,而您不知道如何修复?这通常是由于过时的键盘驱动程序而发生的。但是,重新安装它们有时可以解决问题。 快速回答,要在您的 电脑 上重新安装键盘驱动程序…

    2023年3月12日
  • 如何轻松从Windows10中删除过时软件

    臃肿软件对于技术所有者来说是一个祸害。制造商在你闪亮的新笔记本电脑、手机或平板电脑中预装了应用程序,以增加他们的口袋里的钱。您留下了一堆通常无用的程序,占用了本已有限的存储空间。 …

    2023年7月6日
  • 如何修复“您的电脑无法投影到另一个屏幕”错误

    无论您是想在董事会会议室进行演示、将游戏体验扩展到更大的显示器,还是只是从笔记本电脑流式传输 Netflix,Windows 都可以让您相对简单地将屏幕投影到另一台显示器。但是,如…

    2023年10月10日
  • 如何查找您的Win笔记本电脑型号,多种查看方法

    您是否需要知道您的 Windows 计算机或笔记本电脑的型号?也许您正在尝试寻找适合您的设备的驱动程序或寻求制造商的支持。无论是什么原因,都很容易找到,并且有多种方法可以实现。 在…

    2023年6月26日