第四章 存储器管理(4)——虚拟存储器

4.5、虚拟存储器的基本概念

       前面所介绍的各种存储器管理方式有一个共同的特点,即它们都要求将一个作业全部装入内存后方能运行,于是,出现了下面这样两种情况:

      (1) 有的作业很大,其所要求的内存空间超过了内存总容量,作业不能全部被装入内存,致使该作业无法运行。

      (2) 有大量作业要求运行,但由于内存容量不足以容纳所有这些作业,只能将少数作业装入内存让它们先运行,而将其它大量的作业留在外存上等待。

      出现上述两种情况的原因,都是由于内存容量不够大。一个显而易见的解决方法,是从物理上增加内存容量,但这往往会受到机器自身的限制,而且无疑要增加系统成本,因此这种方法是受到一定限制的。另一种方法是从逻辑上扩充内存容量,这正是虚拟存储技术所要解决的主要问题

      虚拟内存指的是通过虚拟存储器实现的内存,虚拟内存管理就是虚拟存储器管理

      虚拟内存的基础是局部性理论,包括程序执行的局部性和存储空间访问的局部性。

      实现虚拟内存最主要的技术是部分对换。虚拟内存的容量只受计算机地址位数的限制,其实际容量是由内存和硬盘容量之和确定的

4.5.1、虚拟存储器定义

       基于局部性原理,应用程序在运行之前,没有必要全部装入内存,仅须将那些当前要运行的少数页面或段先装入内存便可运行,其余部分暂留在盘上。程序在运行时,如果它所要访问的页(段)已调入内存,便可继续执行下去;但如果程序所要访问的页()尚未调入内存(称为缺页或缺段,注意这里,如果所访问的页或段未调入内存时,会发生缺页中断或缺段中断),此时程序应利用OS所提供的请求调页()功能,将它们调入内存,以使进程能继续执行下去。如果此时内存已满,无法再装入新的页(),则还须再利用页()的置换功能,将内存中暂时不用的页(段)调至盘上,腾出足够的内存空间后,再将要访问的页(段)调入内存,使程序继续执行下去。

      这样,便可使一个大的用户程序能在较小的内存空间中运行;也可在内存中同时装入更多的进程使它们并发执行。从用户角度看,该系统所具有的内存容量,将比实际内存容量大得多。但须说明,用户所看到的大容量只是一种感觉,是虚的,故人们把这样的存储器称为虚拟存储器。

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

       虚拟存储器的实质是让程序存在的地址空间与运行时存放程序的存储空间区分开,程序员可以在地址空间内编写程序,而完全不用考虑实际内存的大小。

4.5.2、虚拟存储器的硬件支持和实现方法

1、实现虚拟存储技术需要有一定的硬件条件:

☆  要有相当数量的外存,足以存放多个用户的程序

☆  要有一定容量的内存,因为在处理机上运行的程序必须有一部分信息存放在内存中

☆  地址变换机构:以动态实现虚拟地址到实地址的地址变换

 

2、虚拟存储器的实现,都毫无例外地建立在离散分配的存储管理方式的基础上。目前,所有的虚拟存储器都是采用下述方式之一实现的。

☆ 分页请求系统

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

☆ 请求分段系统

        这是在分段系统的基础上,增加了请求调段及分段置换功能后所形成的段式虚拟存储系统。它允许只装入少数段(而非所有的段)的用户程序和数据,即可启动运行。以后再通过调段功能和段的置换功能将暂不运行的段调出,同时调入即将运行的段。置换是以段为单位进行的

☆ 请求段页式系统

4.5.3、虚拟存储器的特征

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

1、多次性

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

2、对换性

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

3、虚拟性

       虚拟性是指能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量这是虚拟存储器所表现出来的最重要的特征,也是实现虚拟存储器的最重要的目标

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值