移动技术

「移动技术」是一种内存不足情况下的存储管理方式。

可变分区存储管理中,会出现大量小的空闲分区,即使这些分区的总容量大于一个用户程序的要求,由于地址离散,而不能为程序所用,形成外部碎片,造成内存的浪费。 

措施:通过移动程序,将碎片集中起来形成一个大分区。有两种方法:

  • 内存紧凑:也叫存储器紧缩,指在主存中把离散的碎片集中起来形成一个完整的大分区的方法。 
  • 程序浮动:指在主存中将用户程序移动。

img-2024-04-28 18-14-12.png

内存紧凑和程序浮动带来的问题: 

  • 经过紧缩后,用户程序在内存中的位置发生了变化,若要程序能正确运行,必须对程序代码和数据的地址进行变换,即进行重定位。 
  • 静态地址重定位不行,最好的方法是采用动态地址重定位。 
  • 采用动态地址重定位,由于地址转换在程序执行期间,随着对每条指令和数据的访问而自动进行,因此,当系统进行紧缩和程序浮动时,不需要对程序做任何修改,只需将程序在主存的起始地址进行更新即可。

时机

在某分区被释放后立即进行紧缩。 

  • 优点:系统主存非常整洁,只有一个连续的空闲分区,没有任何碎片,有利于空闲分块表的管理和主存分配 。
  • 缺点:紧缩工作需要耗费系统资源,会降低 CPU 利用率和系统吞吐量。 

当“请求分配模块”找不到足够大的空闲分区时,再进行紧缩 

  • 优点:减少紧缩次数,提高 CPU 利用率和系统吞吐量。 
  • 缺点:增加了空闲分块表管理的复杂性。