虚拟内存对应的是物理内存。所谓的物理内存,即内存的真实地址。而虚拟内存指的不是内存的真实地址,而是映射的地址。
产生原因
问题
程序A启动后,使用内存地址A
程序B启动后,也要使用内存地址A
于是,内存地址A被程序A、B争抢。
解决方式
程序A启动后,使用虚拟内存A,映射到物理内存某一个地址
程序B启动后,使用虚拟内存A,映射到物理内存的另一块地址
映射方式
谁来转换
CPU执行进程A获取进程A的虚拟地址,之后谁来转换成对应的物理内存地址呢?MMU(内存管理单元)就是负责这件事情的。
(感谢小林老师的图)