对换

来自计算思维百科
跳转至: 导航搜索
对换.jpg

我们身上背的背包有时会装满,如果有新东西要放,就放不下了。我们一般就会把背包中不常用的东西拿出来,然后新东西就能装进去了。这种方法在计算机管理内存时会用到,称为“对换”技术。对换分为整体对换和部分对换,是计算机操作系统存储器管理的一种方法,用来提高内存利用率。

基本概念

对换,是指在计算机中增加对换设施,用来把内存中暂时不能运行的进程或者暂时不用的程序和数据调到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据调入内存。

如果对换以整个进程为单位,便称之为“整体对换”或“进程对换”,,用来解决内存紧张问题;如果对换以“页”或“段”为单位,则称之为“页面对换”或“分段对换”,统称“部分对换”,主要用来支持虚拟存储系统。

为了实现对换(以进程对换为例),需要实现三方面的功能:对换空间的管理,进程的换出以及进程的换入。

1. 对换空间的管理:

在具有对换功能的操作系统中,通常把外存分为文件区和对换区,前者用于存放文件,后者用于存放从内存换出的进程。文件采用离散分配方式,进程采用连续分配方式,目的都是为了提高进程换入和换出的速度。

2. 进程的换出与换入

  1. 进程的换出:每当一进程找不到足够的内存空间时,系统将某进程换出。其过程是:系统首先选择处于阻塞状态且优先级最低的进程作为换出进程,然后启动磁盘,将该进程的程序和数据传送到磁盘的对换区上。传送成功,则回收进程所占内存空间,并对该进程的进程控制块做相应的修改。
  2. 进程的换入:系统应定时地查看所有进程的状态,从中找出“就绪”状态但已换出的进程,将其中换出时间最久的进程作为换入进程,将之换入,直到没有可以换入的进程或无可换出的进程为止。

应用范围

“对换”技术可应用于存在非工作空间,且需要提高工作空间利用率的情况,例如货车装卸货物等

使用方法及步骤

对于工作空间不足而邻近非工作空间有空闲的场景,可执行如下步骤

  1. 找到当前最不急于完成的事情或事物,将其放到邻近非工作空间;
  2. 在工作空间做当前需做的事情后,若产生新的事物而工作空间不足,则执行步骤1;否则执行步骤3
  3. 把邻近非工作空间的事务换到工作空间,重复步骤2直到所有事情都被处理完毕。

应用案例

应用1-物品的清洗顺序安排

案例:由于下了几天大雨,房间角落里一些东西有了臭味,妈妈决定利用大太阳赶紧晒一晒被子,还有把衣服、窗帘洗洗。由于被子晚上要用到,所以必须要先洗。现在被子、衣服、窗帘放到桶里了,没法洗被子。妈妈应该怎么做?

解决步骤:

  1. 妈妈首先应将不急着用的衣服、窗帘从洗衣盆里拿出来,放到旁边的空盆里;
  2. 在桶里加洗衣液将被子洗干净,洗完被子拿到有太阳的地方晾起来;
  3. 将空盆里的衣服放进桶里,加洗衣液将衣服洗干净;
  4. 将洗干净的衣服拿在手上,将还没洗的窗帘扔进桶里,并将空盆洗干净,把洗好的衣服放进去;
  5. 在桶里将窗帘洗干净后和衣服一起拿到有太阳的地方晾起来

在这个例子中,洗衣机就是内存,能放的东西有限。被子、衣服、窗帘都是要处理的进程,其中不急着用的衣服、窗帘就是阻塞状态且优先级最低的进程,旁边的空盆就是磁盘,被子是优先级高的进程,先被处理了;然后再把空盆中的物品对换进来,进行处理。

应用2-运动员要呆在比赛区还是休息区

案例: 运动员比赛都会有其比赛的顺序,当轮到该运动员比赛的时候,运动员要在比赛区参加比赛;没有轮到的时候,运动员可以随意在休息区走动。

在这个例子中,马上要参加比赛的运动员是优先级高的进程,而没有轮到的运动员是优先级低的进程,这些进程被对换到了休息区,休息区就是磁盘。

可以体现的计算思维

对换技术把紧急或已准备好的进程或程序段和数据调入内存,将暂时不需要的进程调到外存,提高了运行效率,体现了计算思维的规划和折中思想,对于存在非工作空间的情况下,提高工作空间利用率有很大作用。