第六章—虚拟机存储器
一、常规存储器管理方式的特征和局部性原理
1、特征
一次性:指作业一次性地全部装入内存后,程序才能开始运行。
驻留性:作业装入内存后,整个作业都一直驻留在内存中。
2、局部性
局部性规律:指程序的执行仅局限于某个部分,访问的存储空间也局限于某个区域。
时间局限性:指某条指令或数据被执行访问后,则不久以后该指令和数据可能会被再次访问。
空间局限性:一旦访问了某个存储单元后,不久之后其附近的存储单元也将会被访问,因为他们的空间地址可能在一起。
3、虚拟存储器的工作原理
基于局部性原理可知,在运行应用程序之前,没有必要将之全部装人内存,而仅须将那些当前要运行的少数页面或段先装人内存便可运行,其余部分暂留在盘 上。
程序在运行时,如果它所要访问的页(段)已被调入内存,则可继续执行下去;但如果程序所要访问的页(段)尚未被调人内存(称为缺页或缺段),则须发出缺页 (段)中断请求,此时OS将利用清求调页(段)功能,将它们调入内存,以使进程能继续执行下去。
如果此时内存已满,无法再装人新的页(段),则OS还须再利用页(段)的置换功能将内存中暂时不用的页(段)调至盘上,在腾出足够的内存空间后,再将要访问的页(段)调人内存,使程序继续执行下去。这样,便可使一个大的用户程序能在较小的内存空间中运行,也可在内存中同时装人更多的进程,使它们并发执行。
二、虚拟器的定义和特征
1、定义:
具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
2、特征:
多次性:允许程序被分成多次调入内存运行,只需把当前要运行的那部分程序和数据装入内存即可运行。
对换性:指一个程序和数据无需在作业运行期间一直留在内存中,而是允许进行换入、换出。
虚拟性:能够从逻辑上扩大内存容量。
三、虚拟器的实现方法
(一)请求分页系统
1、虚拟器实现所需硬件
在分页系统基础之上,增加了请求调页功能、页面置换功能。
工作原理:
允许用户程序只装入少数页面的程序即可启动运行,以后,再通过请求调页功能和页面置换功能,陆续地把即将运行的页面调入内存,同时把暂时不用的页面换出到外存上。
硬件支持:
请求分页的页表机制:
在页表的基础上增加了四个字段。
页号 物理块号 状态位P 访问字段A 修改为M 外存地址 表示该页是否被调入内存 记录被访问次数 表示调入内存后是否被修改 该页在外存中的地址 缺页中断机制:
要访问的页面尚且还没有被调入内存时,便产生缺页中断,并请求OS将缺页调入内存。
指令执行期间发现所要访问的指令或数据不在内存时,才产生缺页中断信号。
地址变换机构:
2、请求分页中的内存分配:
为一个进程分配内存时,需要确定3个问题:
最小物理块数:指能保证进程正常运行所需的最小物理块数。
内存分配策略:指给进程所分配的物理块数量是固定、还是以后是可变的。
置换的时候是从该进程所正在运行的页面中(局部)、还是从OS保留的空闲物理块中取一块用来进行置换(全局)。
3种分配置换方法:
固定分配局部置换、可变分配全局置换、可变分配局部置换
物理块分配算法:
平均分配算法、按比例分配算法、考虑优先权的分配算法。
3、页面调入策略
何时调入页面:
预调页策略:一次调入若干个页面,将那些预计在不久之后会被访问的页面预先调入内存中去,适合于第一次将进程调入内存时使用。
请求调页策略:一次只能调入一个页面
从何处调入页面:
外存分为两部分:存放文件的文件区、存放对换页面的对换区。
分为以下三种情况:
1、系统拥有足够的对换空间:这时进程可以从对换区调入全部所需的页面。注意:进程运行前,需要将与该进程有关的文件从文件区复制到对换区。
2、系统缺少足够的对换区空间:这时,凡是不会被修改的文件都直接从文件区调入,以后也直接从文件区调入。对于那些可能已被修改的部分,在将他们换出时,须调到对换区,以后也从对换区调入。
3、UNIX方式:凡是未运行过的页面都应该从文件区调入。
4、页面置换算法
5、内存有效访问时间
发生的所有操作过程有:
查找快表的时间、查找页表的时间、处理缺页中断的时间、更新快表的时间、访问实际物理地址时间
还有快表命中率、缺页率。
6、抖动
产生原因:
同时在系统中运行的进程太多,导致分配给每个进程的物理块太少,不能满足进程正常运行的基本要求,致使每个进程在运行时会频繁地出现缺页,必须请求系统将所缺之页调入内存。造成每个进程的大部分时间都用于页面的换入、换出,而几乎不能再去做任何有效的工作。
解决办法:
抖动的发生与系统为进程分配物理块的数量有关。
工作集:指在某段时间间隔内中进程实际要访问页面的集合,即进程在某一时间间隔内所引用的所有页面的集合。
采取局部置换策略、把工作集算法融入处理机调度中、利用“L=S”准则调节缺页率、选择暂停的进程