虚拟内存的工作原理:我们提到虚拟内存后,就认为进程中有一块很大的连续内存空间,即我们可以从0x000000~0xffffff进行访问。但实际上,这个内存地址只是一个虚拟地址,只有将这个虚拟地址映射到映射表后才能找到实际的物理地址。
工作原理如下:
CPU地址进程:通过虚拟地址访问对应进程的映射表边。内存地址;这个由操作系统和CPU上集成的硬件单元MMU配合完成的过程称为地址转换。
我提到了虚拟内存和物理内存是在一个映射表中进行映射的,但是这种映射不能是一一对应的,这样就浪费了内存。为了解决效率问题,真正的物理内存实际上是在页面上。映射表也是基于页面的。换句话说,映射表仅针对一页,而不是针对每个单独的地址