文档介绍:第6章虚拟存储管理
本章要点
●虚拟存储器的引入
●请求页式存储管理
●请求段式存储管理
2017/12/1
●
前面介绍的存储管理方案要求作业全部装入内存才可运行。但这会出现两种情况:
●有的作业因太大,内存装不下而无法运行。
●系统中作业数太多,因系统容量有限只能让少数作业先运行。
问题:能否不把作业的全部信息同时装入主存储器,而让作业开始执行?
2017/12/1
如果这个问题能够解决的话,当主存空间小于作业需求量时,作业也能执行,这就使得主存空间能被充分地利用,进而用户编制程序时可以不必考虑主存储器的实际容量,允许用户的逻辑地址空间大于主存储器的绝对地址空间,对用户来说,好像计算机系统具有一个容量很大的主存储器,称为虚拟存储器。
虚拟存储器的容量由计算机的地址结构和辅助存储器(如磁盘)的容量决定,与实际主存储器的容量无关。所以,虚拟存储器实际上是为扩大主存容量而采用的一种管理技巧。
工作原理:
以大容量的辅助存储器(如磁盘)做后盾。
把作业信息保留在磁盘上,当要求装入时,只将其中一部分先装入主存储器,另一部分暂时存放在磁盘上,作业执行过程中要用到那些不在主存储器中的信息时,再把它们装到主存储器中。
问题:在作业信息不全部装入主存的情况下能否保证作业的正确执行?
局部性原理(理论基础) 提出
●程序执行时,大多数情况下是顺序执行的。
●过程调用会使程序的执行轨迹从一部分内存区域转至另一部分区域,但过程调用的深度不会超过5。
●程序中有许多循环语句,这些语句会重复多次执行。
●程序中对数据结构的操作,往往局限在很小的范围内。
局部性原理
局限性的表现
●时间局限性
程序中的的某条指令一旦执行,不久后会再次执行。
●空间局限性
程序一旦访问某存储单元,不久后会访问其附近的存储单元。
虚拟存储器的定义
所谓虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。
●离散性
作业不装入连续的存储空间,内存分配采用离散分配方式。
●多次性
一个作业被分割,被多次调入内存。
●对换性
作业在运行过程中换进、换出内存。
●虚拟性
从逻辑上扩充了内存的容量。
虚拟存储器的特征
实现虚拟存储管理必须解决三个关键问题:
怎样知道当前哪些信息已在主存储器中,哪些信息尚未装入主存储器中?
如果作业要访问的信息不在主存储器中,怎样去找到这些信息且把它们装入到主存储器中?
在把欲访问的信息装入主存储器时,发现主存储器中已无空闲区域,又该怎么办?
●
对采用页式管理的存储器来说,能被方便地改造成虚拟存储器。
改造的方法很简单,只需将作业的全部信息作为副本存放在磁盘上,作业调度选中一个作业时,至少把作业的第一页信息装入主存储器,在作业执行过程中欲访问不在主存储器中的页时,再把它们装入。
为此需要对页表进行改造。首先应在页表中指出哪些页已在主存储器中,哪些页还没装入主存储器,并且指出每一页副本在磁盘上的位置。
●状态位P:记录该页是否在内存。P=1该页在内存;
P=0该页不在内存。
●访问字段A:记录该页在一段时间内被访问的次数。
●修改位M:记录该页在内存期间是否被修改过。
M=1该页调入内存后被修改过;
M=0该页调入内存后未被修改过。
●外存地址: 该页在外存的地址。
页表的扩充
●