![虚拟内存和内置内存(RAM)有什么区别?](https://linux22.com/image/1407189/%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98%E5%92%8C%E5%86%85%E7%BD%AE%E5%86%85%E5%AD%98%EF%BC%88RAM%EF%BC%89%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
我将硬盘上的约 24GB 分配为“虚拟内存”——我的理解是计算机可以用作 RAM 的额外空间。我的系统内置了 8GB RAM,因此我假设我释放了高达约 32GB 的可用 RAM。
我的问题是,大约 24GB 的虚拟内存是否比我的内置 RAM 效率低?也许更重要的是,虚拟内存和物理 RAM 之间的真正区别是什么?
答案1
根据 SU 标签(我写的)对虚拟内存的定义:
虚拟内存是一种提供比可用地址空间更多的地址空间的技术物理内存(已安装的 RAM)。
每个进程都可以有自己的虚拟内存硬件(内存管理单元,MMU)将每个虚拟内存参考物理内存地址。为了适应更多情况虚拟内存使用量高于实际物理内存、存储设备上的空间(后备存储或交换空间或页面文件)如 HDD、SSD 甚至 U 盘都可以用来“换出“内存数据,然后根据需要“换回(回)”。
交换的内存数据通常以称为页面的数据长度为单位,但也有使用可变长度段或甚至分页段的替代方案。
显示的对话框用于配置页面文件.
您没有分配虚拟内存。如果您使用的是 64 位 CPU 和操作系统,则有 2^64 字节虚拟内存每个流程。
虚拟内存已从一种提供更多地址空间的技术发展而来。虚拟内存是为每个进程提供安全性的关键组件,以便一个进程不会干扰另一个进程,也不会受到另一个进程的攻击。
附录
描述虚拟内存的一个困难是,微软已经重新发明了虚拟机在 Windows 中实际工作方式的描述,并发表了一些误导性的解释,例如这和这。
但非 Microsoft OS 开发人员和现代 CPU 设计人员接受的虚拟内存的正确定义以及它在计算机中实际的工作方式在此进行了描述计算机体系结构演示。VM
不是一个简单的话题,因此显然 MS 曲解了解释,以描述分页文件的净收益和等效作用。最不幸的是,MS 还选择偶尔将分页文件称为“虚拟内存”,就好像“虚拟内存”实际上位于 CPU 和内存子系统之外,这与任何人在计算机架构课程中学到的知识以及虚拟内存的实际情况相反。
请注意,MS Windows 对其虚拟内存的“解释”中没有提及进程之间的内存保护。这一遗漏表明该解释是虚假的。虚拟内存的使用是确保计算机安全性以及防止一个应用程序破坏其他程序或整个 PC 的关键机制。MS Windows 不使用替代机制来隔离进程;它与其他操作系统一样,使用虚拟内存和提供的 MMU 硬件。
附录 2
这里Microsoft 技术文章尝试使用传统的内存管理术语。将“虚拟地址空间”映射到物理 RAM 是计算机界所熟知的虚拟内存的内存映射的显著操作。
虚拟地址范围有时也称为虚拟内存范围。
插入“有时”有点奇怪,好像是为了承认非 MS 世界使用的“虚拟内存”的传统定义,但又不与 MS 对该术语的(误)使用相矛盾。
虚拟地址对应于虚拟内存,就像物理地址对应于物理内存一样。
答案2
虚拟内存是已加载但非当前进程可以停放的地方。
内存中的程序可以直接使用。这就像在桌面上有一本打开的书。交换文件中的内容就像打开了正确的书页,但放在你身后的梳妆台上。在使用之前,必须先将其拿到桌子上。
未打开的东西就像放在书柜里。你必须取出书,然后将其打开到正确的页面。
拥有更多实际内存就像拥有更大的办公桌:可以立即完成更多工作。虚拟内存过多也可能造成问题,因为梳妆台等处打开的内容是在桌面或实际内存上管理的。
速度是这里的主要标志。
此外,windos 只能处理固定的内存大小,尤其是 32 位内存,所以除非您使用 win64,否则 4gb 就足够了。