Skip to content

虚拟存储器概述

目录


参考资料:

1 常规存储管理方式的特征和局部性原理

1.1 常规存储器管理方式的特征

传统存储器管理方式,具有如下两个共同的特征:

  • 一次性:是指作业必须一次性地全部装入内存后方能开始运行。
  • 驻留性:是指作业被装入内存后,整个作业都一直驻留在内存中,其中任何部分都不会被换出,直至作业运行结束。

由此可以看出,上述的一次性及驻留性特征使得许多在程序运行中不用或暂时不用的程序占据了大量的内存空间,而一些需要运行的作业又无法装入运行,显然,这是在浪费宝贵的内存资源。

1.2 局部性原理

程序在执行时将呈现出局部性规律,即在一较短的时间内,程序的执行仅局限于某个部分,相应地,它所访问的存储空间也局限于某个区域。

原因:首先,程序在大多数情况下是顺序执行的,而且过程调用的深度一般都不超过 5,其次程序中存在许多循环结构,对许多数据结构的处理也都局限于很小的范围内。

补充:过程调用会转移程序的执行区域,程序循环和数据结构往往都只是一个很小的范围

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

  • 时间局限性:如果程序中的某条指令被执行,则不久以后该指令可能再次执行;如果某数据被访问过,则不久以后该数据可能再次被访问。产生时间局限性的典型原因是在程序中存在着大量的循环操作
  • 空间局限性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范围之内,其典型情况便是程序的顺序执行

1.3 虚拟存储器的基本工作情况

基于局部性原理可知,应用程序在运行之前没有必要将之全部装入内存,而仅须将那些当前要运行的少数页面或段先装入内存便可运行,其余部分暂留在盘上。

程序在运行时,如果它所要访问的页已调入内存,便可继续执行下去;但如果程序所要访问的页尚未调入内存(称为缺页缺段),便发出缺页中断请求,此时 OS 将利用请求调页功能将它们调入内存,以使进程能继续执行下去。如果此时内存已满,无法再装入新的页,OS 还须再利用页的置换功能,将内存中暂时不用的页调至盘上,腾出足够的内存空间后,再将要访问的页调入内存,使程序继续执行下去。

这样,便可使一个大的用户程序在较小的内存空间中运行,也可在内存中同时装入更多的进程,使它们并发执行。

2 虚拟存储器的定义和特征

2.1 虚拟存储器的定义

所谓虚拟存储器,是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存速度,而成本却又接近于外存。

2.2 虚拟存储器的特征

与传统的存储器管理方式比较,虚拟存储器具有以下三个重要特征:

  • 程序允许被分成多次调入内存运行。(多次性)
  • 允许一个作业中的程序和数据,在作业的运行过程中进行换入和换出。(对换性)
  • 用户所看到的内存容量远大于实际内存容量。(虚拟性)

虚拟性以多次性和对换性为基础,仅当系统允许将作业分多次调入内存,并能将内存中暂时不运行的程序和数据换至盘上时,才有可能实现虚拟存储器;而多次性和对换性又必须建立在离散分配的基础上。

2.3 虚拟存储器的实现方法

(1)分页请求系统

分页请求系统是在分页系统的基础上增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。它允许用户程序只装入少数页面的程序即可启动运行。以后,再通过调页功能及页面置换功能陆续地把即将运行的页面调入内存,同时把暂不运行的页面换出到外存上。

置换时以页面为单位。为了能实现请求调页和页面置换功能,系统必须提供必要的硬件支持和实现请求分页的软件。

  • 硬件支持:请求分页的页表机制、缺页中断机构、地址变换机构。
  • 软件支持:用于实现请求调页的软件和实现页面置换的软件。它们在硬件的支持下,将程序正在运行时所需的页面调入内存,再将内存中暂时不用的页面从内存置换到磁盘上。

(2)请求分段系统

请求分段系统是在分段系统的基础上,增加了请求调段及分段置换功能后所形成的段式虚拟存储系统。

  • 硬件支持:请求分段的段表机制、缺段中断机构、地址变换机构。
  • 软件支持:用于实现请求调段的软件和实现段置换的软件。

Copyright © 2022 田园幻想乡 浙ICP备2021038778号-1