1

如何理解句子

我们可以概括并允许每个数据对象具有多个独立的地址,每个地址都从不同的地址空间中选择。这就是虚拟内存的基本思想(《CSAPP》)

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

4

1 回答 1

4

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

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

而且,为了安全起见,他们即使想看也看不到其他程序使用的内存。他们的内存地址空间完全是他们自己的,可以随意使用。

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

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

于 2013-04-25T16:47:22.327 回答