内存的连续分配方式有哪几种?

发布于 2022-04-12  21 次阅读


概述、分类

内存空间的连续分配方式,是指为一个用户程序(作业)分配一个连续的内存空间。
按照内存空间划分方式的不同可将连续分配方式划分为以下四种方式:

  1. 单一连续分配
  2. 固定分区分配
  3. 动态分区分配
  4. 可重定位分区分配

1.1.单一连续分配
概念:将内存空间分为系统区和用户区。系统区放在内存低地址部分,且仅供OS使用。用户区是除系统区外的其他地内存空间,用户区给用户使用。

缺陷:只适用于单用户、单任务环境。

1.2.固定分区分配
概念:将内存空间分为若干个固定大小的分区,每个分区中只装入一道作业,允许有几道作业并发运行。

与磁盘分区相区别:固定分区分配中的分区指的是对内存空间的分配,而磁盘分区指的是对磁盘空间的分配。

分区划分方法:

分区大小相等:将内存空间划分为若干个大小相等的分区。这种划分方式的缺点是缺乏灵活性,当程序太小时,空间浪费;程序太大,程序无法加载进内存
分区大小不等:将内存空间划分为多个小分区、适量中等分区、少量大分区。解决了分区大小相等时的不灵活,可依据程序大小分配合适大小的分区。
缺陷:由于每个分区的大小固定,所以会造成内存空间的浪费。

1.3.动态分区分配
概念:按照进程的实际需要,动态的为该进程分配一段连续的内存空间。与固定分区的本质区别是该分区的大小不是固定不变的,但是需要注意的是,在进程的生命周期中,属于该进程的分区大小是不变的。

1.4.可重定位分区分配
概念:在动态分区分配中有很多分散的不能被利用的小分区(零头、碎片)。通过移动内存中作业的位置可以将这些分散的小分区拼接成一个大分区,这种技术成为拼接(紧凑)。但是每次拼接(紧凑)后都需要对程序和程序需要的数据进行重定位。

与动态分区分配本质的区别:可重定位分区分配利用拼接(紧凑)将原来分散的小分区拼接成了大分区,这其中涉及到程序移动和重定位。