两个虚拟地址空间如何映射到同一物理地址范围?

时间:2014-05-11 19:40:04

标签: operating-system xv6

我认为他们可能会覆盖彼此的数据。 据我所知,两个相同的虚拟地址空间可以映射到物理内存。

2 个答案:

答案 0 :(得分:1)

一个。大多数多处理系统都支持创建共享内存,其中物理内存块可以映射到多个进程。通常,映射可以是不同的虚拟地址。

B中。所有虚拟内存系统共享相同的物理内存。但是,在用户模式下,同一页物理内存无法同时映射到多个进程。

℃。对于所有进程,内核模式地址空间通常是相同的。操作系统维护该内存区域以防止覆盖。

答案 1 :(得分:0)

问题不太清楚。

假设标准硬件,虚拟地址空间由其页面转换表确定。 因此,如果有两个转换表,并且它们具有相同物理页码的条目, 然后,您使用相同的物理页面在两个虚拟空间中都有页面。

如果上述情况适用于转换表中的所有条目,则会获得映射到相同物理范围的两个地址空间。

问题是人们为什么会这样想。

如果您希望两个不同的进程在此配置中实际工作,则它们无法并行运行(即,在两个CPU上)。更糟糕的是,之前,比如,proccess1计划必须确保 process1内存的内容到位。 这可能需要复制出process2内存内容(到不同的内存地址,磁盘或其他内容)并将process1内存的内容复制回来。