是什么
虚拟存储器 = 真实的内存 + 硬盘空间
即将主存的概念抽象出来,使得程序好像有了更大的地址空间,然而并没有
地址空间是地址的集合,分为虚拟和物理地址空间两种:
- 虚拟:大小由总线带宽决定
- 物理:与物理存储器的字节(地址)相对应
实现原理
主要依据是局部性
1、装载程序时:只将当前指令执行需要的部分页面放入内存中
2、执行需要的指令或数据不在内存中时:处理器通知操作系统将相应的页面调入内存
3、OS用页面调度算法将内存中暂时不用的页面保存到外存中
VM的作用
1、作为缓存的工具
DRAM用于磁盘和SRAM间的缓存,而VM可以用于磁盘和DRAM间的缓存。
2、作为存储器管理的工具
管理DRAM,实际上每个进程有独立的页表,也就是单独的虚拟地址空间,再通过各自独立的虚拟地址空间映射到共同的物理地址空间(在DRAM中)和磁盘地址中,简化了链接,加载,共享和存储器分配这些过程。
地址翻译
是建立一个虚拟地址空间到物理地址空间的映射关系
需要使用一个叫做存储器管理单元MMU的专用硬件,通过虚拟地址的页号在页表寄存器中查询所需的页,再通过得到的物理页号和虚拟页偏移组合得到物理地址
动态存储器的分配等详情看这里