强调了虚拟内存管理的优势

时间:2018-03-10 19:14:08

标签: unix process linux-kernel cpu

  

大多数现代操作系统采用虚拟内存管理,a   技术赋予两个主要优势:

     

✗进程彼此隔离并与内核隔离,因此   一个进程无法读取或修改另一个进程的内存或者   内核。

     

✗只有部分过程需要保留在内存中,从而降低   每个进程的内存需求并允许更多进程   同时保存在RAM中。这样可以提高CPU利用率,   因为它增加了在任何时刻出现的可能性   至少是CPU可以执行的一个进程。

     

来源:Linux编程接口:Linux和UNIX系统编程手册,Michael Kerrisk

我不明白第二个解释的部分,这会导致更好的CPU利用率,  因为它增加了在任何时刻那里的可能性  是至少一个CPU可以执行的进程。你能澄清这句话吗?是否有规则必须至少有一个进程可以由CPU或类似的东西执行?为什么需要?

1 个答案:

答案 0 :(得分:-1)

嗯,这整个定义完全不正确。

  

进程彼此隔离并与内核隔离,因此   一个进程无法读取或修改另一个进程的内存或者   内核。

这意味着进程无法相互通信并与内核通信。虚拟内存提供的隔离只意味着未经授权的进程不能直接(与间接通过系统调用相反)访问为另一个进程分配的内存。

  

只有部分过程需要保留在内存中,从而降低   每个进程的内存需求并允许更多进程   同时保存在RAM中。

每个过程的内存要求不会降低,它们保持不变。相反,虚拟内存会产生一种错觉,即物理主内存比系统上实际安装的内存多。

  

这会带来更好的CPU利用率,因为它会增加CPU利用率   在任何时候,至少有一个过程的可能性   CPU可以执行。

与没有虚拟内存相比,这不一定会增加CPU利用率或始终具有可调度进程的可能性。这取决于每个进程正在做什么,每个进程需要多少内存,进程如何相互交互,以及操作系统如何分配和管理内存。

更大的物理记忆的幻觉具有以下好处:

  • 通过运行多个进程使系统更具交互性,无论其内存需求如何。这并不一定意味着整个系统或任何单个进程在任何意义上都运行得更快(或更慢)。
  • 增强应用程序的可移植性,因为它们可以在具有不同物理内存量的系统上透明地运行。

虚拟内存还有其他好处。我建议阅读OS书籍和其他资源。