【发布时间】:2015-09-25 06:26:43
【问题描述】:
我目前正在尝试了解 Linux 系统编程,但很难理解虚拟到物理内存映射的工作原理。
到目前为止我的理解是两个进程P1 和P2 可以引用同一个虚拟地址,例如0xf11001。现在这个内存地址被分成两部分。 0xf11 是页码,0x001 是该页内的偏移量(假设使用 4096 页大小)。为了找到物理地址,MMU 具有将页码映射到物理地址的硬件寄存器,比如说0xfff。最后一个阶段是将0xfff 与0x001 结合起来找到物理0xfff001 地址。
但是这种理解没有任何意义,相同的虚拟地址仍将指向相同的物理位置???为了让我的理解正确,我错过了哪一步???
【问题讨论】:
标签: linux paging virtual-memory