如何理解虚拟内存?

时间:2013-04-25 16:37:10

标签: c virtual-memory mmu

如何理解句子

  

我们可以概括并允许每个数据对象具有多个独立地址,每个地址都选自不同的地址sapce。这是虚拟内存的基本概念(“CSAPP”)

为什么数据对象没有唯一的地址?

1 个答案:

答案 0 :(得分:4)

虚拟内存通常用于简化运行多个程序的计算机上的编程。

如果您的计算机上运行了多个程序,它们每个程序都会看到一个符合其需要的内存虚拟地址空间。就该计划而言,生活很简单。他们可以在任何特定地址使用他们想要的任何内存,并且他们不必为避免其他程序使用的内存而做出任何努力。

此外,为了安全起见,他们无法看到其他程序使用的内存,即使他们想要。他们的记忆地址空间完全是他们自己想要的。

因此,在简单的情况下,每个数据对象只属于一个程序,那么每个数据对象 只有一个地址。

但是,程序可能涉及共同资源。例如,两个拼写检查程序可能需要在磁盘上使用一个充满拼写的大文件。操作系统通常只加载一次 - 而不是将其加载到内存中两次 - 但是可以通过使用它的两个程序在不同的虚拟地址处看到它。因此,在这种情况下,一个数据对象可能确实有几个虚拟地址。