虚拟存储器
逻辑上扩充内存
- 虚拟存储器的基本概念
- 引入、实现、特征
- 请求分页存储管理方式
- 硬件支持、地址变换、分配算法
- 页面置换算法
- 性能分析
- 请求分段存储管理方式
1. 常规存储器管理方式的特征和局部性原理
常规存储器管理方式的特征:
1)一次性。要求将作业全部装入内存才能运行,当程序大于内存时,作业无法运行。
2)驻留性。装入内存中用的作业一直驻留内存,直到运行结束(处于等待状态的进程也占用内存)。
局部性原理:
时间局部性(temporal locality)
被引用过一次的存储器位置很可能在不远的将来再被多次引用。
空间局部性(spatial locality)
如果一个存储器位置被引用了一次,那么程序很可能在不远的将来引用附近的一个存储器位置。
虚拟存储器的定义和特征
虚拟存储器定义:
具有请求调入功能和置换功能, 能从逻辑上对内存容量加以扩充的一种存储器系统。
其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存速度,而每位的成本却又接近于外存。
虚拟存储器的特征 :
多次性:作业被分成多次调入内存运行。
对换性:允许在作业的运行过程中进行换进、换出。
虚拟性:从逻辑上扩充内存容量。
虚拟的实现建立在离散分配存储管理基础上
方式:请求分页/请求分段系统
细节:分页/段机构、中断机构、地址变换机构、软件支持
基于局部性原理
程序运行前,不需全部装入内存(打破一次性)
仅装入当前要运行的部分页面或段即可运行,其余部分暂留在外存上。
缺页/段的情况:要访问的页(段) 尚未调入内存。程序应利用OS所提供的请求调页(段)功能,将它们调入内存,使程序继续执行。
调入需要的页/段时,如果内存已满,无法再装入新页(段),通过置换功能将内存中暂时不用的页(段)调至外存,腾出足够的内存空间。(不总驻留)
交换技术与虚存使用的调入调出技术有何相同和不同之处?
主要相同点是都要在内存与外存之间交换信息;
主要区别在于交换技术换出换进一般是整个进程(proc结构和共享正文段除外),因此一个进程的大小受物理存储器的限制;
而虚存中使用的调入调出技术在内存与外存之间来回传递的是存储页或存储段,而不是整个进程,从而使得进程映射具有了更大的灵活性,且允许进程的大小比可用的物理存储空间大的多 。
虚拟存储的实现方式
1、请求分页存储管理方式
基本分页 + “请求调页”和“页面置换”功能。
换入和换出基本单位都是长度固定的页面
1)硬件支持
-
一台具有一定容量的内/外存的计算机
-
页表机制
-
缺页中断机构
-
地址转换机构
-
状态位P:表明该页是否在内存。
-
访问字段A:记录本页在一段时间内被访问的次数,或记录本页