内存管理之连续分配管理方式

连续分配管理方式

      连续分配方式是指为一个用户程序分配一个连续的内存空间。通俗地说,就是给内存划格子(格子中都是一个进程,和非连续分配管理方式相对)。

(1)单一连续分配

     将内存分为系统区和用户区,内存中永远只有一道程序——已经成为历史

(2)固定分区分配

分为2种方式: 分区大小相等, 分区大小不等

因为预先给分区划定了内存大小,所以存在两个问题:

一.程序可能太大而放不进任何一个分区中,用户不得不用使用覆盖技术

二.主存利用率低,当程序小于固定分区大小时,也占用了一个完整的内存分区空间,分区内部有空间浪费,这种现象称为内部碎片

固定分区是可用于多道程序设计最简单的内存分配,无外部碎片,但不能实现多进程共享一个主存区,存储空间利用率低。很少用于现在通用的操作系统中。

(3)动态分区分配

动态划分内存,不预先将内存划分,而是在进程装入内存时,根据进程的大小动态地

建立分区,并使分区的大小正好适合进程的需要。系统中分区的大小和数目是可变的。

 内存管理之连续分配管理方式

  随着进程的换入/换出,会出现更多更小的内存块,内存的利用率随之下降,这些小的内存块称为外部碎片,指在所有分区外的存储空间会变成越来越多的碎片,这与固定分区的内部碎片正好相对。克服外部碎片可以通过紧凑技术来解决,就是操作系统不时地对进程进行移动和整理,相对费时。和windows系统中的磁盘整理程序类似。

在进程装入或换入主存时,如果内存中有多个足够大的空闲块,操作系统必须确定分配哪个内存块给进程使用,这就是动态分区的分配策略。有以下几种算法: 首次适应, 最佳适应,最坏适应,邻近适应。