存储器管理的内存连续分配方式详解

4.2 连续分配方式

连续分配方式:指为一个用户程序分配一个连续的内存空间
  • 一、单一连续分配方式
  • 二、固定分区分配
  • 三、动态分区分配
  • 四、可重定位分区分配

一、单一连续分配方式

存储器管理的内存连续分配方式详解_第1张图片

二、固定分区分配

1、原理

将内存空间划分为若干个固定大小的区域,在每个分区中只装入一道作业,便可以有多道作业并发执行。当有一空闲分区时,便可以再从外存的后备作业队列中,选择一个适当大小的作业装入该分区,当该作业结束时,再从后备作业队列中找出另一作业调入该分区。

2、划分分区的方法

  • 分区大小相等
    所有分区大小相等,缺乏灵活性
  • 分区大小不等
    把内存区划分成含有多个较小的分区、适量的中等分区及少量的大分区

3、实现

存储器管理的内存连续分配方式详解_第2张图片

三、动态分区分配(重点!!!)

1、原理

  • 动态分区分配时根据进程的实际需要,动态地为之分配内存空间。作业装入内存时,把可用内存分出一个连续区域给作业,且分区的大小正好合适作业大小的需要。
  • 分区的大小和个数依装入作业的需要而定。

2、实现

在实现过程中涉及如下问题:
  • 分区分配中的数据结构
  • 分区分配算法
  • 分区分配及回收操作

存储器管理的内存连续分配方式详解_第3张图片

存储器管理的内存连续分配方式详解_第4张图片

分区分配算法

为把一个新作业装入内存,需按照一定的分配算法,从空闲分区表或空闲分区链中选出一分区分配给该作业。

常用的分配算法:
  • (1)首次适应算法
  • (2)循环首次适应算法
  • (3)最佳适应算法
  • (4)最坏适应算法
  • (5)快速适应算法
(1)首次适应算法FF

存储器管理的内存连续分配方式详解_第5张图片

(2)循环首次适应算法

存储器管理的内存连续分配方式详解_第6张图片

(3)最佳适应算法

存储器管理的内存连续分配方式详解_第7张图片

(4)最坏适应算法(worst fit)

存储器管理的内存连续分配方式详解_第8张图片

(5)快速适应算法(quick fit)

该算法又称为分类搜索法,是将空闲分区根据其容量大小进行分类,对于每一类具有相同容量的所有空闲分区,单独设立一个空闲分区链表,系统中存在多个空闲分区链表,同时在内存中设立一张管理索引表,该表的每一个表项对应了一种空闲分区类型,并记录了该类型空闲分区链表表头的指针。

分区分配及回收操作

存储器管理的内存连续分配方式详解_第9张图片

存储器管理的内存连续分配方式详解_第10张图片

回收内存

存储器管理的内存连续分配方式详解_第11张图片

四、可重定位分区分配

存储器管理的内存连续分配方式详解_第12张图片

存储器管理的内存连续分配方式详解_第13张图片

存储器管理的内存连续分配方式详解_第14张图片
存储器管理的内存连续分配方式详解_第15张图片

五、对换

1、对换的引入
 阻塞进程占据大量内存空间
 许多作业再外存而不能进入内存运行
对换:

把内存中暂时不能运行的进程或暂时不用的程序和数据,调到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程和进程所需的程序还有数据调入内存。

对换的分类:
  • 整体对换(或进程对换):以整个进程为单位
  • 页面对换或分段对换:以页或段为单位
实现进程对换,系统必须具备的功能:
  • 对换空间的管理
  • 进程的换出
  • 进程的换入

存储器管理的内存连续分配方式详解_第16张图片

3、进程的换出与换入

  • 进程的换出
    系统首先选择处于阻塞状态且优先级最低的进程作为换出进程,然后启动盘块,将该进程的程序和数据传送到磁盘的对换区上。
  • 进程的换入
    系统应定时查看所有进程的状态,从中找出“就绪”状态但已换出的进程,将换出进程最久的进程作为换入进程,将之换入,直至已无可换入的进程或无可换出的进程为止。

存储器管理的内存连续分配方式详解_第17张图片

你可能感兴趣的:(计算机操作系统,操作系统,内存管理,内存回收,连续分配)