动态重定位分区分配

来自计算思维百科
跳转至: 导航搜索
动态重定位分区分配.png

计算机中的内存类似与我们随身的背包,随时可以取东西、放东西,但是背包中的东西如何放置,决定了你能放多少东西进去。如果放得乱七八糟,后面的东西就放不下了,如果放置整齐,没有浪费的空间,就可以放更多的东西。计算机的内存中如何放数据,也是这个道理。动态重定位分区分配是计算机在存储器中如何存储数据的一种管理方法,其主要目的是为了解决连续分配导致的内存“碎片”问题。

基本概念

在要执行的任务进入内存时,如果发现内存中有很多小分区,每个小分区是可以用的,但是因为小没有任何一个能放入新任务,那么,“动态重定位分区分配”就将内存中的所有作业移动,使它们都相邻接,把原来分散的多个小分区拼接成一个大分区,称为 “拼接”或“紧凑”;

动态重定位,就是在每次“紧凑”后,都必须对移动了的程序或数据进行重新定位,以后再用到这个数据时就知道搬到哪里去了。

应用范围

该算法常常应用于与存储有关的管理,例如仓库货物的管理、超市货架的整理等

使用方法及步骤

  1. 移动所有的物品,使得左右作业紧凑连接在一起,原来分散的小空位变成一块相对较大的空位
  2. 把新物品放到挨着旧物品的空位上
  3. 记下当前空位的位置以及空位在整个存储空间的位置,两者编号相加即为当前新物品的位置编号

应用案例

应用1- 超市货架饮料整理

案例:某超市有一货架是专门存放饮料的,由于生意好,仓库里放饮料A的货架上卖完了剩下了空位,而超市有新商品要上架,但是新商品比原来饮料A体积大,其他的空位也相对较小,超市可以怎么做能保证新商品放得上货架呢?

解决步骤:

  1. 挪动当前其他商品,使商品都紧挨着,把货架上的小空位连成大空位;
  2. 将新商品放进货架新整理出来的大空位上;
  3. 记下重新调整后货架的层数和编号以及存放的商品。

可以体现的计算思维

动态重定位分区分配通过挪动位置使得小分区变成大分区,从而使得原本不可利用的空间可用,提高了空间利用率,体现了计算思维的优化特点。