Memory 进程之间的内存空间如何保持不同?

Memory 进程之间的内存空间如何保持不同?,memory,pagination,operating-system,virtual-memory,Memory,Pagination,Operating System,Virtual Memory,进程之间的内存空间如何保持分离 我不知道这到底是怎么回事。从我看到的情况来看,想想MMU和虚拟内存 CPU生成一个虚拟地址,然后映射到磁盘中的某个位置或RAM中的某个页面。但是内存空间究竟是如何分开的呢?您在这里非常困惑。操作系统维护页表,用于将逻辑页映射到物理页帧。每个进程都会看到编号为0的逻辑页。。。N可以映射到物理页面帧,也可以不映射到物理页面帧。MMU使用页面表进行翻译 进程X可以访问第2页,进程Y可以访问第2页,但它们通常会映射到不同的物理页面框架。通过将相同的逻辑地址映射到不同的物理

进程之间的内存空间如何保持分离

我不知道这到底是怎么回事。从我看到的情况来看,想想MMU和虚拟内存


CPU生成一个虚拟地址,然后映射到磁盘中的某个位置或RAM中的某个页面。但是内存空间究竟是如何分开的呢?

您在这里非常困惑。操作系统维护页表,用于将逻辑页映射到物理页帧。每个进程都会看到编号为0的逻辑页。。。N可以映射到物理页面帧,也可以不映射到物理页面帧。MMU使用页面表进行翻译


进程X可以访问第2页,进程Y可以访问第2页,但它们通常会映射到不同的物理页面框架。通过将相同的逻辑地址映射到不同的物理页,操作系统将进程分开。

地址未映射,而是转换为物理地址。回答你不清楚的问题,是CPU。@Tony,是的,我的意思是它从虚拟/逻辑转换为物理。至于实际问题,你能详细解释一下“CPU”是什么意思吗?我不明白在翻译过程中,内存空间是如何保持分开的,每个条目会保留更多的位。如果两个不同的进程将其页面映射到同一个插槽,则其中一个进程的位将被抵消。所以他无法访问该页面。除非他的页面被带到内存中,而另一个页面被调出。是的,我知道映射,但每个进程都有自己的页面表,不是吗?进程X的第2页和进程Y的第2页不同。我的疑问是,内存到底是如何保持分离的?这意味着,寄存器、堆栈帧等如何为进程保持独立?@BrijendarBakchodia更改进程意味着提取寄存器的值并将其保存在进程任务结构中。一旦该进程返回运行状态,它的值将从任务结构中读取并复制到寄存器,以便从停止的位置继续运行。