没有交换的虚拟内存的优势?
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 为您提供的简单性相比,它相当混乱。
当我们只使用现有的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 为您提供的简单性相比,它相当混乱。