物理地址只有 36 条线,但页表条目长度为 64 位。CPU 如何检查地址是否有效?Linux OS 如何将不同进程中的相同虚拟地址映射到不同的物理地址?
这是有关物理地址扩展(PAE)的维基百科文章。 http://en.wikipedia.org/wiki/Physical_Address_Extension。
答案1
物理地址线只有 36 条,但页表条目却有 64 位长。CPU 如何检查地址是否有效?
这实际上是由一个叫做内存管理单元(MMU),处理虚拟到物理地址的转换。就地址是否“有效”而言,每个进程都有自己独特的地址空间(从而实现虚拟内存方案),因此任何地址在技术上都是有效的。请记住,进程可以分配比物理可用内存更多的内存。
MMU 使用翻译后备缓冲器(TLB)快速解码虚拟地址为物理地址,保存在页表。
Linux OS如何将不同进程中的相同虚拟地址映射到不同的物理地址?
这又是因为每个过程都有独特的虚拟地址空间这对于实现虚拟内存. 给定进程的虚拟地址被映射到一些物理存储硬件(RAM、磁盘等),但映射是在运行时由操作系统和 MMU 完成的。