0
我目前正试图了解Linux的系统编程,并且很难理解虚拟到物理内存映射如何工作。如何虚拟到pyhsical内存映射工作
到目前为止,我的理解是,两个进程P1
和P2
可以引用同一个虚拟地址,例如0xf11001
。现在这个内存地址被分成两部分。 0xf11
是页码,0x001
是该页面内的偏移量(假定使用4096页大小)。为了找到物理地址,MMU具有将页面号码映射到物理地址的硬件寄存器,可以说0xfff
。最后一个阶段是将0xfff
与0x001
组合以找到物理地址0xfff001
。
然而,这种理解没有感觉,相同的虚拟地址仍然会指向相同的物理位置?我错过了什么步骤,以便我的理解是正确的?