这个问题针对任何使用 VAS 模型的操作系统,但我将指定 windows nt,因为这是我最了解的系统。
众所周知,默认情况下,32 位 Windows 上的进程会单独获得 2 GB 的内存。该内存可以位于系统内存、交换文件、USB 驱动器等中。
这意味着多个进程可以在地址 0x12345678 分配内存,但是这当然不可能映射到相同的物理内存。
我的问题是,如何在不完全破坏性能的情况下做到这一点?处理器是否有某种机制来映射内存地址?
每次我们不想访问内存时要求操作系统进行映射查找,看起来很慢..
最佳答案
有一个硬件设备可以进行翻译 - 它叫做 Memory Management Unit (MMU)。大多数现代 CPU,甚至是智能手机等设备中使用的 CPU,都包含一个 MMU。
关于windows - 从性能的角度来看,虚拟地址空间映射如何才能被接受?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3491761/