虚拟存储器

计算机系统中的主存储器(主存)-辅助存储器(辅存)层次。它把辅存当作主存的扩充,对用户来说,好像系统具有一个容量很大的主存,工作速度接近于主存,每位成本又与辅存相近。

工作原理

虚拟存储器是由硬件和操作系统自动实现存储信息调度和管理的。它的工作过程包括 6个步骤(见图)。

图

(1)中央处理器访问主存的逻辑地址分解成组号 ɑ和组内地址b,并对组号ɑ进行地址变换,即将逻辑组号ɑ作为索引,查地址变换表,以确定该组信息是否存放在主存内。

(2)如该组号已在主存内,则转而执行④。如果该组号不在主存内,则检查主存中是否有空闲区。如果没有,便将某个暂时不用的组调出送往辅存,以便将这组信息调入主存。

(3)从辅存读出所要的组,并送到主存空闲区。然后将那个空闲的物理组号ɑ′和逻辑组号ɑ登录在地址变换表中。

(4)从地址变换表读出与逻辑组号ɑ对应的物理组号ɑ′。

(5)从物理组号ɑ′和组内字节地址b得到物理地址。

(6)根据物理地址从主存中存取必要的信息。

调度方式

分页式、段式、段页式三种。页式调度是将逻辑和物理地址空间都分成固定大小的页。主存按页顺序编号,而每个独立编址的程序空间有自己的页号顺序,通过调度辅存中程序的各页可以离散装入主存中不同的页面位置,并可据表一一对应检索。页式调度的优点是页内零头小,页表对程序员来说是透明的,地址变换快,调入操作简单。缺点是各页不是程序的独立模块,不便于实现程序和数据的保护。段式调度是按程序的逻辑结构划分地址空间,段的长度是随意的,并且允许伸长。它的优点是消除了内存零头,易于实现存储保护,便于程序动态装配。缺点是调入操作复杂。将这两种方法结合起来便构成段页式调度。在段页式调度中把物理空间分成页,程序按模块分段,每个段再分成与物理空间页同样大小的页面。段页式调度综合了段式和页式的优点。其缺点是增加了硬件成本,软件也较复杂。大型通用计算机系统多数采用段页式调度。

地址变换

虚拟存储器地址变换基本上有三种形式:全联想变换,直接变换和组联想变换。任何逻辑空间页面能够变换到物理空间任何页面位置的方式称为全联想变换。每个逻辑空间页面只能变换到物理空间一个特定页面的方式称为直接变换。组联想变换是指各组之间是直接变换,而组内各页间则是全联想变换。

替换规则

替换规则用来确定替换主存中哪一部分,以便腾空部分主存,存放来自辅存要调入的那部分内容。常见的替换算法有4种。

(1)随机算法:用软件或硬件随机数产生器确定替换的页面。

(2)先进先出:先调入主存的页面先替换。

(3)近期最少使用算法:替换最长时间不用的页面。

(4)最优算法:替换最长时间以后才使用的页面。这是理想化的算法,只能作为衡量其他各种算法优劣的标准。

虚拟存储器的效率是系统性能评价的重要内容,它与主存容量、页面大小、命中率、程序局部性和替换算法等因素有关。