1. 虚拟内存的基础概念
1. 传统的存储的缺点:(例如,连续内存分配)
1、一次性:作业必须要一次性全部进入内存中,作业很大的时候就会无法运行;当大量作业进入时,内存不足,只能允许部分作业先运行,降低多道批程序。
2、 驻留集:作业装入内存后,就不在被换出。
2. 局部性原理
- 时间局部性原理:一条指令执行后,待会该指令还可能会被执行;访问一条数据后,待会改数据还有可能会被访问。 (因为程序中存在大量循环操作)
- 空间局部性原理:当访问一个地址后,待会其周围的地址都有可能会被访问。 (因为程序中的指令通常是顺序存储)
3. 虚拟存储器的特点 (非连续内存分配)
- 多次性:作业可分批多次进入内存。
- 对换性:作业不必一直驻留内存,允许作业运行中进出内存。
- 虚拟性:从逻辑上扩充了内存。使用用户可以使用的内存远大于内存容量。
4. 虚拟技术的实现
- 虚拟技术的实现是建立在离散内存分配的基础上,因为离散内存分配中可以对作业进行分页,分段,可以进行更细粒度的内存管理。
- 前面提到的覆盖,交换技术都是虚拟内存的技术。
- 实现方式:请求分页技术,请求分区分段技术,请求分段技术
- 硬件支持:一定容量的内存和外存;页表,段表等(逻辑地址与物理地址间的映射关系);中断机制;地址转换。