是什么

虚拟存储器 = 真实的内存 + 硬盘空间
即将主存的概念抽象出来,使得程序好像有了更大的地址空间,然而并没有

地址空间是地址的集合,分为虚拟和物理地址空间两种:

  1. 虚拟:大小由总线带宽决定
  2. 物理:与物理存储器的字节(地址)相对应

实现原理

主要依据是局部性
1、装载程序时:只将当前指令执行需要的部分页面放入内存中
2、执行需要的指令或数据不在内存中时:处理器通知操作系统将相应的页面调入内存
3、OS用页面调度算法将内存中暂时不用的页面保存到外存中

VM的作用

1、作为缓存的工具

DRAM用于磁盘和SRAM间的缓存,而VM可以用于磁盘和DRAM间的缓存。

2、作为存储器管理的工具

管理DRAM,实际上每个进程有独立的页表,也就是单独的虚拟地址空间,再通过各自独立的虚拟地址空间映射到共同的物理地址空间(在DRAM中)和磁盘地址中,简化了链接,加载,共享和存储器分配这些过程。

地址翻译

是建立一个虚拟地址空间到物理地址空间的映射关系

需要使用一个叫做存储器管理单元MMU的专用硬件,通过虚拟地址的页号在页表寄存器中查询所需的页,再通过得到的物理页号和虚拟页偏移组合得到物理地址
虚拟存储器VM
动态存储器的分配等详情看这里

相关文章: