存在的问题
- 传统存储管理方式都要求将一个作业全部装入内存后才可以运行
- 存在部分作业,需要的内存空间大于物理内存
- 或者存在大量作业,无法全部装入内存,部分需要放在外存等待
- 解决方式
- 拓展物理内存(受机器自身限制不能无限拓展)
- 采用虚拟存储技术
常规存储管理方式的特征和局部性原理
- 常规存储管理方式的特征
- 一次性:作业需要一次性装入内存才行
- 常驻性:作业装入内存后,作业执行期间一直在内存中知道作业结束
- 局部性原理
- 程序执行期间,除了部分转移和调用外,大部分情况下是顺序执行的
- 大多数情况下,过程调用的深度都不超过 5
- 程序中存在许多循环结构(即一段程序被多次执行)
- 程序中包含了很多对数据结构处理,这些处理局限在很小的范围内
- 两个方面
- 时间局限性:如某条指令被执行后很快会再次被执行(原因是程序中存在大量的循环结构)
- 空间局限性:如程序访问某个存储单元后,其相邻的存储单元也会被访问(原因是程序的顺序执行)
- 虚拟存储器的基本工作情况
- 基于局部性原理可以知道不必将整个作业装入内存中
- 将当前需要的某个页面或段装入内存便可运行
- 程序执行时,如果它要访问的页面已调入内存,则直接运行
- 否则发出缺页(段)中断请求,将请求的页面(段)调入内存
- 如果内存满了,还要使用页面(段)的置换功能,再调入页面(段)
虚拟存储其的定义和特征
- 定义:指具有请求调入功能和置换功能,能从逻辑上对内存的容量加以扩充的一种存储器系统
- 特征
- 多次性:多次调入页面(段)
- 对换性:页面(段)的换入换出(虚拟存储系统稳定运行的保证)
- 虚拟性:逻辑上扩充内存的容量(提高内存利用率,提高并行程度)
- 说明
- 虚拟性是以多次性和对换性为基础的
- 多次性和对换性是建立在离散分配的基础上的
- 最本质的特征是离散性
虚拟存储器的实现方法
- 虚拟存储系统的实现,是建立在离散分配的存储管理方式上
- 分页请求系统
- 在分页系统的基础上增加请求调页功能和页面置换功能所形成页式虚拟存储系统。
- 置换单位:页
- 实现
- 硬件支持
- 请求分页的页表机制
- 缺页中断机制
- 地址变换机构
- 软件支持
- 硬件支持
- 请求分段系统
- 在分段系统的基础上增加请求调页功能和页面置换功能所形成段式虚拟存储系统。
- 置换单位: 段
- 实现
- 硬件支持
- 请求分页的段表机制
- 缺页中断机制
- 地址变换机构
- 软件支持
- 硬件支持
- 两种系统的比较
- 页式虚拟存储系统是以固定大小的页面为单位的,实现起来相对容易
- 段式虚拟存储系统由于段的长度不固定,类似于动态分区方式,在内存分配和回收上都比较复杂