操作系统12————存储器管理之对换

操作系统12————存储器管理之对换

一.目录

文章目录

  • 操作系统12————存储器管理之对换
      • 一.目录
      • 二.概述
      • 三.多道程序环境下的对换技术
        • 1.对换的引入
        • 2.对换的类型
      • 四.对换空间的管理
        • 1.对换空间管理的主要目标
        • 2.对换区空闲盘块管理中的数据结构
        • 3.对换空间的分配和回收
      • 五.进程的换出和换入
        • 1. 进程的换出
        • 2. 进程的换入
      • 五.参考资料

二.概述

对换技术也称为交换技术。最早用于麻省理工学院的单用户分时系统CTSS中。由于当时计算机的内存都非常小,为了使该系统能分时运行多个用户程序而引入了对换技术。系统把所有的用户作业存放在磁盘上,每次只能调入一个作业进入内存,当该作业的一个时间片用完时,将它调至外存的后备队列上等待,再从后备队列上将另一个作业调入内存。这就是最早出现的分时系统中所用的对换技术。现在已经很少使用。

由上述可知,要实现内外存之间的交换,系统必须有一台I/O速度较高的外存,其容量也必须够大,能容纳正在分时运作的所有用户程序,目前最常使用的是大容量磁盘存储器。

三.多道程序环境下的对换技术

1.对换的引入

在多道程序环境下,一方面,在内存中的某些进程由于某事件尚未发生而被阻塞运行,但它却占用了大量的内存空间,甚至有时可能出现在内存中所有进程都被阻塞,而无可运行之进程,迫使CPU停止下来等待的情况;另一方面,却又有着许多作业,因内存空间不足,一直驻留在外存上,而不能进入内存运行。显然这对系统资源是一种严重的浪费,且使系统吞吐量下降。

对换是指: 把内存中暂时不能运行的进程或者暂时不用的程序和数据换出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或者进程所需的程序或者数据换入。对换是改善内存利用率的有效措施,它可以直接提高处理机的录用率和吞吐量

2.对换的类型

在每次对换时,都是将一定数量的程序或数据换入或换出内存。根据每次对换时所对换的数量,可将对换分为如下两类:

  • 整体对换。整体对换其实就是之前博客中所说的处理机的中机调度,也称为"进程对换"或者"整体对换"
  • 页面(分段)对换。即对换是以进程的一个"页面"或者"分段"为单位进行的,这种方法是实现请求分页和分段使储存管理的基础,其目的是支持虚拟存储系统。

四.对换空间的管理

1.对换空间管理的主要目标

在具有对换功能的OS中,通常把磁盘空间分为文件区和对换区两部分。 
 
a.对文件区管理的主要目标  
文件区占磁盘空间的大部分,用于存放各类文件,由于通常的文件都是较长时间的驻留在外存上,对它的访问频率是较低的,故对文件区管理的主要目标是提高文件存储的空间利用率。然后才是提高访问速度。因此,对文件区空间的管理采取离散分配方式。

b对对换空间管理的主要目标
对换区只占用了磁盘空间的小部分,用于存放从内存换出的进程。这些进程在兑换区的驻留时间是短暂的,而对换操作的频率却较高,故对对换空间管理的主要目标是,提高进程换入换出的速度,然后才是提高文件空间的利用率。为此,对对换区空间的管理采取连续分配方式,较少考虑外存中的碎片问题。

2.对换区空闲盘块管理中的数据结构

为了实现对对换区中的空闲盘块的管理,在系统中应配置相应的数据结构,用于记录外存对换区中的空闲盘块的使用情况。其数据结构的形式与内存在动态分区分配方式中所用数据结构相似,即同样可以用空闲分区表空闲分区链。在空闲分区表的每个表目中,应包含两项:对换区的首址及其大小,分别用盘块号和盘块数表示。

3.对换空间的分配和回收

由于对换分区的分配采用的是连续分配方式,因而对换空间的分配与回收与动态分区方式时的内存分配与回收方法雷同。其分配算法可以是首次适应算法、循环首次适应算法或最佳适应算法等。具体的分配和回收操作也与上一篇博客相同。

五.进程的换出和换入

当内核因执行某操作而发现内存不足时,便调用对换进程,它的主要任务就是实现进程的换出和换入。

1. 进程的换出

对换进程在实现进程换出时,是将内存中的某些进程调出至对换区,以便腾出内存空间。换出过程可分为以下两步:  
a.选择被换出的进程。对换进程在选择被换出的进程是,将检查所有驻留在内存中的进程,首先选择处于阻塞状态或者睡眠状态的进程。当有多个这样的进程时,应当选择优先度最低的进程作为换出进程。在有些操作系统中,还会来了进程在内存中的驻留时间。如果系统中已经无阻塞进程,而现在的内存空间仍不满足需求,便选择优先级最低的就绪进程换出。

b.进程换出过程 。在选择换出进程后,只能换出非共享的程序和数据段。在进行换出时,应先申请对调空间,若申请成功,,就启动磁盘,将该进程的程序和数据传送到磁盘的对换区。如果未出现错误,便可回收该进程所占的内存空间,并对该进程的进程控制块和内存分配表上的数据结构进行相应的修改。

2. 进程的换入

对换进程将定时执行换入操作,它首先查看PCB集合中所有进程的状态,从中找出“就绪”状态但已换出的进程。当有许多这样的进程时,它将选择其中已换出到磁盘上时间最久(必须大于规定时间,如2 s)的进程作为换入进程,为它申请内存。如果申请成功,可直接将进程从外存调入内存;如果失败,则需先将内存中的某些进程换出,腾出足够的内存空间后,再将进程调入。

由于要交换一个进程需要很多的时间,因此,对于提高处理机的利用率而言,它并不是一个非常有效的解决方案。目前使用较多的方案是:处理机正常运行时,并不启动对换程序,如果发现有许多进程运行时经常发生缺页且显示内存紧张的情况,则启动对换程序将一部分进程调至外存。如果发现所有进程的缺页率都已经明显减小,系统的吞吐量已下降时,可暂停运行对换程序。

五.参考资料

《操作系统第四版》

你可能感兴趣的:(操作系统,操作系统,对换)