原理:
电脑上多个程序,各程序被编译连接生成可执行文件(机器指令程序)----在磁盘中存储时各程序被切分成多个部分(称为“页”),每一页都对应一个虚拟地址(其实就是对每一页编号)-----由于物理内存有限(运存)所以各程序在执行时只是把此时要执行的页加载到物理内存中去(其他页还是在外存中)-----外存和内存和虚拟地址之间建立一个映射表-----cpu在运行时从内存中取指令执行(CPU取指令是通过虚拟地址来寻找要执行的指令的)----CPU中的地址转换单元(MMU)通过映射表把虚拟地址查找指令的(外存)物理地址或(内存)物理地址(如果发现要执行的指令在内存中就直接加载到CPU计算,如果在外存中就匆匆忙忙把该指令加载到内存中,并更新映射表,再从内存中加载到CPU中执行)。
注: 所谓“虚拟内存”,是对于CPU计算单元来说的,CPU从内存取指令时用的是虚拟地址,它并不知道这个地址是虚拟的。
补充: 虚拟内存把程序分为各个