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