存储管理(二)http://t.csdnimg.cn/ybvFa 存储管理(二)这节所介绍的几种存储管理方式有一个共同的特点,都要求将一个作业全部装入内存之后才能运行,于是,就可能出现以下两种情况:
-
(1) 作业很大,需要的内存空间超过了内存总容量,从而导致作业不能全部被装入内存,致使该作业无法运行
-
(2) 有多个作业要求运行,其要求的内存空间超过了可用的内存空间,只能将少数作业装入内存让它们先运行,而将其它作业留在外存等待
在上节的末尾也提到了这个问题,不过没有进行详细的解释,只是一笔带过,那么这节就来简单的聊一下怎么解决这些问题。
传统存储管理方式的特征
-
(1) 一次性
-
传统存储管理方式都要求将作业全部装入内存之后才能运行,即作业在运行前需要一次性地全部装入内存,正是这一特征导致了上述两种情况的发生
-
另外,许多作业在每次运行时,并非要用到全部程序和数据。因此一次性地装入全部程序和数据,极大的浪费了内存空间
-
-
(2) 驻留性
-
作业装入内存直到运行结束,便一直驻留在内存中
-
局部性原理
程序的执行表现出局部性特征,即程序在执行过程中的一个时间段内,程序的执行仅局限于某个部分。相应地,它所执行的指令地址或操作数地址也局限于一定的存储区域中。
--Denning.P,1968
-
(1) 程序执行时,只有少量分支转移和过程被调用,在大部分情况下仍是顺序执行的指令。
-
(2) 程序中包含许多循环结构,由相对较少的指令组成,但是它们将多次执行。在循环过程中,计算被限制在程序中很小的相邻部分中。
-
(3) 程序中过程调用的深度限制在小范围内,很少出现连续的过程调用,大多数情况下都不超过5。一段时间内,指令引用被局限在很少几个过程中。
-
(4) 对于连续访问数组之类的数据结构,往往是对存储区域中相邻位置的数据进行操作。
-
(5) 程序中有些部分是彼此互斥的,不是每次运行时都用到,如出错处理程序。
局限性还表现在下述两个方面
-
(1) 时间局部性。如果程序中的某条指令正在执行,则不久后,该指令可能会再次执行。同样,如果某数据被访问过,则不久后,该数据可能会被再次访问。时间局部性的产生原因是由于在程序中存在着大量的循环操作。
-
(2) 空间局部性。程序在运行过程中,一旦访问了某个内存单元,则在不久后,其邻近的存储单元也将可能被访问,即程序在一段时间内所访问的内存地址,可能集中在一定的范围之内。空间局部性的产生原因是由于程序的顺序执行。
虚拟存储器的概念
虚拟存储器是指在具有层次结构存储器的计算机系统中,具有请求调入和交换功能,为用户提供一个比实际物理内存容量大得多的可寻址的一种存储器系统,它能从逻辑上对内存容量进行扩充。其逻辑容量由内存容量和外存容量之和决定,其运行速度接近于内存速度,而每位的成本却又接近于外存。
虚拟存储器的容量主要受到两方面的限制:
-
(1) 指令中表示地址的字长。一个虚拟存储器的最大容量是由计算机的地址结构确定的。如:若CPU的有效地址长度为32位,则程序可以寻址的范围就是0~2^32-1,即虚存容量为4GB。
-
(2) 外存的容量。虚拟存储器的容量与主存的实际大小没有直接关系,而是由主存与辅存的容量之和确定。虚拟存储技术是一种性能非常优越的存储器管理技术,已被广泛应用于大、中、小型机器和微型机中。
虚拟存储器的实现方法
-
虚拟存储器的实现都必须建立在离散分配的存储管理方式基础上。
-
虚拟存储系统需要具有请求调页(段)功能和页面(分段)置换功能。如果程序执行时发生缺页或缺段,此时程序就可以利用系统提供的请求调页(段)功能,将它们调入内存,以使程序能够继续执行下去。如果内存已满,无法装入新调入的页(段),则必须利用一定的页(段)置换功能,将内存中暂时不用的页(段)换到外存中,以腾出足够的空间来存放新调入的页(段),从而保证程序的顺利执行。
-
虚拟存储器根据地址空间结构的不同可以分为分页虚拟存储器和分段虚拟存储器两类,也可以把两者结合起来,构成段页式虚拟存储器。
虚拟存储器的特征
-
(1) 虚拟性。虚拟内存不是扩大实际的物理内存,而是从逻辑上扩充内存的容量 。
-
(2) 多次性。多次性是指一个作业可被分成多次调入内存运行 。
-
(3) 对换性。对换性是指允许在作业运行过程中进行换进和换出 。
虚拟性是以多次性和交换性为基础的,或者说,只有系统允许作业分多次调入内存,并能将内存中暂时不运行的程序和数据交换到外存,系统才可能实现虚拟存储器,而多次性和对换性,又必须建立在离散分配的基础上。