大多数现代操作系统采用虚拟内存管理,a 技术赋予两个主要优势:
✗进程彼此隔离并与内核隔离,因此 一个进程无法读取或修改另一个进程的内存或者 内核。
✗只有部分过程需要保留在内存中,从而降低 每个进程的内存需求并允许更多进程 同时保存在RAM中。这样可以提高CPU利用率, 因为它增加了在任何时刻出现的可能性 至少是CPU可以执行的一个进程。
来源:Linux编程接口:Linux和UNIX系统编程手册,Michael Kerrisk
我不明白第二个解释的部分,这会导致更好的CPU利用率, 因为它增加了在任何时刻那里的可能性 是至少一个CPU可以执行的进程。你能澄清这句话吗?是否有规则必须至少有一个进程可以由CPU或类似的东西执行?为什么需要?
答案 0 :(得分:-1)
嗯,这整个定义完全不正确。
进程彼此隔离并与内核隔离,因此 一个进程无法读取或修改另一个进程的内存或者 内核。
这意味着进程无法相互通信并与内核通信。虚拟内存提供的隔离只意味着未经授权的进程不能直接(与间接通过系统调用相反)访问为另一个进程分配的内存。
只有部分过程需要保留在内存中,从而降低 每个进程的内存需求并允许更多进程 同时保存在RAM中。
每个过程的内存要求不会降低,它们保持不变。相反,虚拟内存会产生一种错觉,即物理主内存比系统上实际安装的内存多。
这会带来更好的CPU利用率,因为它会增加CPU利用率 在任何时候,至少有一个过程的可能性 CPU可以执行。
与没有虚拟内存相比,这不一定会增加CPU利用率或始终具有可调度进程的可能性。这取决于每个进程正在做什么,每个进程需要多少内存,进程如何相互交互,以及操作系统如何分配和管理内存。
更大的物理记忆的幻觉具有以下好处:
虚拟内存还有其他好处。我建议阅读OS书籍和其他资源。