第6章虚拟存储器
6.1虚拟存储器引入
6.2虚拟存储器的实现方法
6.3虚拟存储器的特征
6.4请求分页存储管理技术
6.5页面置换算法
6.6“抖动”与工作集
6.7请求分段存储管理方式
第5章虚拟存储器
6.1虚拟存储器引入
n前面所介绍的几种存储管理方式有一个共同的特
点,都要求将一个作业全部装入内存之后才能运
行,于是,就可能出现以下两种情况:
?(1)有的作业很大,其要求的内存空间超过了内存
总容量,从而导致作业不能全部被装入内存,致使
该作业无法运行。
?(2)有多个作业要求运行,其要求的内存空间超过
了可用的内存空间,只能将少数作业装入内存让它
们先运行,而将其它作业留在外存等待。
6.1虚拟存储器的引入
n1.传统存储管理方式的特征
?(1)一次性。前面介绍的几种存储管理方式有一个共同的特
点,都要求将作业全部装入内存之后才能运行,即作业在运
行前需要一次性地全部装入内存,正是这一特征导致了上述
两种情况的发生。另外,许多作业在每次运行时,并非要用
到全部程序和数据,因此一次性地装入全部程序和数据,对
内存空间是一种极大的浪费。
?(2)驻留性。作业装入内存直到运行结束,便一直驻留在内
存中。尽管进程在运行中会因I/O等原因而长期处于阻塞状
态,或有的程序模块在运行过一次后就不再需要,但它们都
仍将继续占用宝贵的内存资源。
6.1虚拟存储器的引入
n2.局部性原理
?早在1968年,Denning.P就曾指出:程序的执行表现出局部性特征,
即程序在执行过程中的一个时间段内,程序的执行仅局限于某个
部分。相应地,它所执行的指令地址或操作数地址也局限于一定
的存储区域中。
l(1)程序执行时,只有少量分支转移和过程被调用,在大部分情况下仍
是顺序执行的指令。
l(2)程序中包含许多循环结构,由相对较少的指令组成,但是它们将多
次执行。在循环过程中,计算被限制在程序中很小的相邻部分中。
l(3)程序中过程调用的深度限制在小范围内,很少出现连续的过程调用,
大多数情况下都不超过5。一段时间内,指令引用被局限在很少几个过
程中。
l(4)对于连续访问数组之类的数据结构,往往是对存储区域中相邻位置
的数据进行操作。
l(5)程序中有些部分是彼此互斥的,不是每次运行时都用到,如出错处
理程序。
6.1虚拟存储器的引入
n2.局部性原理
n局限性还表现在下述两个方面;
?(1)时间局部性。如果程序中的某条指令正在执行,
则不久后,该指令可能会再次执行。同样,如果某
数据被访问过,则不久后,该数据可能会被再次访
问。时间局部性的产生原因是由于在程序中存在着
大量的循环操作。
?(2)空间局部性。程序在运行过程中,一旦访问了
某个内存单元,则在不久后,其邻近的存储单元也
将可能被访问,即程序在一段时间内所访问的内存
地址,可能集中在一定的范围之内。空间局部性的
产生原因是由于程序的顺序执行。
6.1虚拟存储器的引入
n3.虚拟存储器的概念
?虚拟存储器是指在具有层次结构存储器的计算机系统中,具
有请求调入和交换功能,为用户提供一个比实际物理内存容
量大得多的可寻址的一种存储器系统,它能从逻辑上对内存
容量进行扩充。其逻辑容量由内存容量和外存容量之和决定,
其运行速度接近于内存速度,而每位的成本却又接近于外存。
?虚拟存储器的容量主要受到两方面的限制:
l(1)指令中表示地址的字长。一个虚拟存储器的最大容量是
由计算机的地址结构确定的。如:若CPU的有效地址长度为
32位,则程序可以寻址的范围就是0~232-1,即虚存容量为
4GB。
l(2)外存的容量。虚拟存储器的容量与主存的实际大小没有
直接关系,而是由主存与辅存的容量之和确定。虚拟存储技
术是一种性能非常优越的存储器管理技术,已被广泛应用于
大、中、小型机器和微