版权归原作者所有,如有侵权,请联系我们

[科普中国]-扩充逻辑地址空间

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

简介

地址空间(address space)表示任何一个计算机实体所占用的内存大小。比如外设、文件、服务器或者一个网络计算机。地址空间包括物理空间以及虚拟空间(逻辑地址空间)1。在计算机中,由于内存空间较小,对于逻辑地址空间很大的作业,内存无法满足其需要的空间要求。一般是从逻辑上扩充地址空间,而不是扩充物理地址空间。扩充逻辑空间是指扩充源程序的相对地址空间。在内存中解决扩充逻辑空间问题一般是基于程序局部性原理。

有关术语地址空间我们把程序中有符号名组成的空间称为地址空间。源程序经过汇编或编译后再经过链接编辑程序加工形成的程序的装配模块,及转换为相对地址编址的模块,它是以0为基址顺序进行编址的。相对地址也称为逻辑地址或虚拟地址,把程序中由相对地址组成的空间叫做逻辑地址空间。相对地址空间通过地址再定位机构转换到绝对地址空间,绝对地址空间也叫物理地址空间。2

物理地址存储器存储单元的真实地址叫物理地址,又叫绝对地址。物理地址是可识别的,实际存在的。内存储器的存储单元按它的排列顺序规定一个编号,这个编号就是该存储单元的物理地址。中央处理机按这个地址号即可访问该存储单元。

物理地址的编号一般都是按二进制数字从小到大编排的。例如,一个4K字节的内存储器,各个字节单元的地址编号是:000000000000~111111111111 (212=4 096)当内存储器容量很大时,地址编号就很大。在计算机指令中一般给出相对地址 (又叫逻辑地址),经寻址变换后,得到物理地址。参见“逻辑地址”及“寻址方式”。

物理地址通常是指内存储器中的地址编号。计算机的外存储器物理地址如磁盘机的地址是以圆柱号、磁道号、扇区号来划分的。

逻辑地址在计算机体系结构中是指应用程序角度看到的内存单元(memory cell)、存储单元(storage element)、网络主机(network host)的地址。 逻辑地址往往不同于物理地址(physical address),通过地址翻译器(address translator)或映射函数可以把逻辑地址转化为物理地址。

局部性原理早在 1968 年,Denning.P 就曾指出:程序在执行时将呈现出局部性规律,即在一较短的时间内,程序的执行仅局限于某个部分;相应地,它所访问的存储空间也局限于某个区域。他提出了下述几个论点:

(1) 程序执行时,除了少部分的转移和过程调用指令外,在大多数情况下仍是顺序执行的。该论点也在后来的许多学者对高级程序设计语言(如 FORTRAN 语言、PASCAL 语言)及 C 语言规律的研究中被证实。

(2) 过程调用将会使程序的执行轨迹由一部分区域转至另一部分区域,但经研究看出,过程调用的深度在大多数情况下都不超过 5。这就是说,程序将会在一段时间内都局限在这些过程的范围内运行。

(3) 程序中存在许多循环结构,这些虽然只由少数指令构成,但是它们将多次执行。

(4) 程序中还包括许多对数据结构的处理,如对数组进行操作,它们往往都局限于很小的范围内。

局限性还表现在下述两个方面:

(1) 时间局限性。如果程序中的某条指令一旦执行,则不久以后该指令可能再次执行;如果某数据被访问过,则不久以后该数据可能再次被访问。产生时间局限性的典型原因是由于在程序中存在着大量的循环操作。

(2) 空间局限性。一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,其典型情况便是程序的顺序执行。

虚拟存储器虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。其逻辑容量由内存容量和外存容量之和来决定,其运行速度接近于内存速度,而每位的成本却又接近于外存。可见,虚拟存储技术是一种性能非常优越的存储器管理技术,故被广泛地应用于大、中、小型和微型机器中。

虚拟存储器具有多次性、对换性和虚拟性三大主要特征。

多次性

多次性是指一个作业被分成多次调入内存运行,亦即在作业运行时没有必要将其全部装入,只需将当前要运行的那部分程序和数据装入内存即可;以后每当要运行到尚未调入的那部分程序时,再将它调入。多次性是虚拟存储器最重要的特征,任何其它的存储管理方式都不具有这一特征。因此,我们也可以认为虚拟存储器是具有多次性特征的存储器系统。

对换性

对换性是指允许在作业的运行过程中进行换进、换出,亦即,在进程运行期间,允许将那些暂不使用的程序和数据,从内存调至外存的对换区(换出),待以后需要时再将它们从外存调至内存(换进);甚至还允许将暂时不运行的进程调至外存,待它们重又具备运行条件时再调入内存。换进和换出能有效地提高内存利用率。可见,虚拟存储器具有对换性特征。

虚拟性

虚拟性是指能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。这是虚拟存储器所表现出来的最重要的特征,也是实现虚拟存储器的最重要的目标。值得说明的是,虚拟性是以多次性和对换性为基础的,或者说,仅当系统允许将作业分多次调入内存,并能将内存中暂时不运行的程序和数据换至盘上时,才有可能实现虚拟存储器;而多次性和对换性又必须建立在离散分配的基础上。