没有交换的虚拟内存的优势?

Advantage of virtual memory without swap?

当我们只使用现有的RAM而不使用swap-space时,虚拟内存有什么优势吗?

除非有分页,否则虚拟内存系统无法工作space。每个页面框架都必须映射到某个地方的磁盘。因此,拥有 VM 而没有页面文件没有任何优势 space.

提到虚拟内存时,您可能会想到以下几点:

  • 交换的可能性
  • 内存保护(一个进程不能使另一个进程崩溃,或使 OS 崩溃)
  • 地址转换(虚拟内存地址到物理地址)
  • 其他我可能不记得了。

给定的体系结构不一定必须支持所有这些,但正如 user3344003 指出的那样,大多数主流系统都支持所有这些。 理论上你可以只有内存保护,没有别的,就像我的宠物项目 https://bitbucket.org/ruifig/g4devkit

如果您指的是广义上的虚拟内存,那么除了 swap-space 之外,它真正有用的一件事是它实现了共享库(又名:Windows 中的 DLL) ) 就容易多了。您可以只使用现有的 RAM,但通过地址转换,可以更轻松地在进程之间共享代码。

在没有 Virtual memory/Address-translation 的系统中支持共享库有一些技巧,但与 Virtual Memory/Address-translation 为您提供的简单性相比,它相当混乱。