什么是虚拟内存,为什么需要虚拟内存

电脑知识 投稿 22700 0 评论

什么是虚拟内存,为什么需要虚拟内存

本章内容给大家谈谈关于遇上虚拟内存等问题,我们该怎么处理呢。下面这篇文章将为你提供一个解决思路,希望能帮你解决到相关问题。

什么是虚拟内存

虚拟内存是计算机系统的辅助内存存储空间(例如硬盘或固态硬盘)的一个区域,其作用就像是系统RAM 或主内存的一部分。

理想情况下,运行应用程序所需的数据存储在 RAM 中,CPU 可以快速访问这些数据。但是当运行大型应用程序或同时运行许多应用程序时,系统的 RAM 可能已满。

为了解决这个问题,可以将一些存储在 RAM 中但未被主动使用的数据临时移动到虚拟内存(物理上位于硬盘驱动器或其他存储设备上)。这释放了 RAM 中的空间,然后可用于容纳系统需要立即访问的数据。

通过在不需要时在 RAM 和虚拟内存之间交换数据,并在需要时从虚拟内存返回到 RAM,系统可以继续顺利工作,物理 RAM 比其他情况需要的少得多。

虚拟内存使系统能够运行更大的应用程序或同时运行更多的应用程序,而不会耗尽 RAM。

为什么需要虚拟内存

虚拟内存是在物理 RAM 非常昂贵的时候开发的,而且每 GB 的 RAM 仍然比硬盘和固态驱动器等存储介质贵。出于这个原因,使用物理 RAM 和虚拟内存的组合比为计算机系统配备更多 RAM 的成本要低得多。

由于使用虚拟内存(或增加虚拟内存)没有额外的财务成本(因为它使用现有的存储空间),它为计算机提供了一种使用比系统上物理可用内存更多的内存的方法。

使用虚拟内存的另一个关键驱动因素是所有计算机系统对可安装的物理 RAM 数量都有限制(由硬件和软件决定)。使用虚拟内存允许系统在超出这些物理 RAM 限制的情况下继续运行。

虚拟内存与物理内存

由于 RAM 比虚拟内存更昂贵,因此在所有条件相同的情况下,计算机似乎应该配备尽可能少的 RAM 和尽可能多的虚拟内存。

但实际上虚拟内存的特性与物理内存不同。虚拟内存和物理内存之间的主要区别在于 RAM 比虚拟内存快得多。

因此,具有 2 GB 物理 RAM 和 2 GB 虚拟内存的系统将无法提供与具有 4 GB 物理 RAM 的类似系统相同的性能。

虚拟内存如何工作

当应用程序(包括操作系统)运行时,它将程序线程和其他数据的位置存储在虚拟地址中,而数据实际上存储在 RAM 中的物理地址中。如果稍后另一个进程更紧急地需要该 RAM 空间,则数据可能会从 RAM 交换到虚拟内存中。

在物理内存和虚拟内存之间交换时跟踪所有这些数据的责任落在了计算机的内存管理器上。内存管理器维护一个表,该表将操作系统和应用程序使用的虚拟地址映射到实际存储数据的物理地址。当数据在 RAM 和虚拟内存之间交换时,该表会更新,以便给定的虚拟地址始终指向到正确的物理位置。

计算机只能运行线程和操作存储在 RAM 中而不是虚拟内存中的数据。将所需的数据交换到 RAM 中需要花费不可忽略的时间。因此,使用虚拟内存会影响性能。

换句话说,由于交换导致性能下降,具有 4 GB RAM 的系统通常比具有 2 GB RAM 和 2 GB 虚拟内存的系统提供更高的性能,因此据说虚拟内存比 RAM 慢。

虚拟内存的一个潜在问题是,如果存在的 RAM 量与虚拟内存量相比太小,那么系统最终可能会花费大量 CPU 资源来回交换数据。与此同时,有用工作的执行几乎停止。

所以通常需要减少同时运行的应用程序数量,或者只是增加系统中的 RAM 量。

操作系统(例如大多数版本的 Windows)通常建议用户不要将虚拟内存增加到现有物理 RAM 量的 1.5 倍以上。因此,具有 4 GB RAM 的系统应具有不超过 6 GB 的虚拟内存。

为了尽量减少物理内存和虚拟内存之间交换造成的性能损失,最好使用连接到系统的最快的存储设备来托管虚拟内存,并将虚拟内存存储区域定位在自己的分区上。

如何增加系统中的虚拟内存

大多数操作系统允许用户从配置页面增加虚拟内存。

  • 在 Windows 中,用户还可以允许系统动态管理提供的虚拟内存量。

  • 同样,在 Mac OS 中,用户可以使用首选项面板来分配虚拟内存。

虚拟内存的类型:分页和分段

系统可以通过多种不同的方式管理虚拟内存,最常见的两种方法是分页和分段。

虚拟内存分页

在使用分页的系统中,RAM 被分成许多块——通常大小为 4k——称为页面。然后为进程分配刚好足以满足其内存要求的页面。这意味着总是会浪费少量内存,除非在一个进程恰好需要整数页的异常情况下。

在正常的操作过程中,页面(即大小为 4K 的内存块)在 RAM 和页面文件之间交换,页面文件代表虚拟内存。

虚拟内存分段

分段是内存管理的另一种方法,其中不是固定大小的页面,而是为进程分配不同长度的段以完全满足其要求。这意味着与分页系统不同,段中不会浪费任何内存。

分段还允许将应用程序拆分为逻辑上独立的地址空间,这可以使它们更易于共享且更安全。

但是分段的一个问题是,由于每个分段的长度不同,因此可能会导致内存“碎片化”。这意味着在分配和取消分配段时,可能会留下小块内存,这些内存块太小而无用。

随着这些小块的建立,可以分配的有用大小的段越来越少。如果操作系统确实开始使用这些小段,那么有大量的数据需要跟踪,每个进程都需要使用许多不同的段,这会降低效率并降低性能。

虚拟内存的优缺点

尽管与最初开发虚拟内存时的成本相比,RAM 现在相对便宜,但它仍然非常有用,并且仍在许多(也许是大多数)计算机系统中使用。虚拟内存的关键问题与性能有关。

虚拟内存的优势

  • 允许同时运行更多应用程序。

  • 允许较大的应用程序在没有足够物理 RAM 单独运行它们的系统中运行。

  • 提供一种增加内存的方法,比购买更多 RAM 的成本更低。

  • 提供一种在系统中增加内存的方法,该系统具有其硬件和操作系统可以支持的最大 RAM 量。

虚拟内存的缺点

  • 不提供与 RAM 相同的性能。

  • 会对系统的整体性能产生负面影响。

  • 占用存储空间,否则可用于长期数据存储。

总结

以上就是为你整理的虚拟内存全部内容,希望文章能够帮你解决相关问题,更多请关注电脑栏目的其它相关文章!

编程笔记 » 什么是虚拟内存,为什么需要虚拟内存

赞同 (87) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽