如何理解句子
我们可以概括并允许每个数据对象具有多个独立的地址,每个地址都从不同的地址空间中选择。这就是虚拟内存的基本思想(《CSAPP》)
为什么数据对象没有唯一地址?
如何理解句子
我们可以概括并允许每个数据对象具有多个独立的地址,每个地址都从不同的地址空间中选择。这就是虚拟内存的基本思想(《CSAPP》)
为什么数据对象没有唯一地址?
虚拟内存通常用于在运行多个程序的计算机上简化编程。
如果您的计算机上运行了多个程序,它们每个都会看到一个适合其需求的虚拟内存地址空间。就该程序而言,生活很简单。他们可以在任何特定的地址使用任何他们想要的内存,并且他们不需要做任何努力来避免其他程序使用内存。
而且,为了安全起见,他们即使想看也看不到其他程序使用的内存。他们的内存地址空间完全是他们自己的,可以随意使用。
因此,在简单的情况下,每个数据对象恰好属于一个程序,那么每个数据对象确实只有一个地址。
但是,程序可能会引用公共资源。例如,两个拼写检查器可能需要在磁盘上使用一个充满拼写的大文件。操作系统通常不会将其加载到内存中两次,而是将其加载一次-但使用它的两个程序可能会在不同的虚拟地址上看到它。因此,在这种情况下,一个数据对象可能确实有多个虚拟地址。