视频字幕
连续分配管理方式是操作系统内存管理的基础方法。它的核心思想是为每个进程分配一个连续的内存区域,也就是说,进程在内存中占用的空间必须是连续的,不能分散在内存的不同位置。这种方式简单直观,容易理解和实现,是早期操作系统广泛采用的内存管理方法。
单一连续分配是最简单的连续分配方式。在这种方式下,内存被分为两个区域:系统区和用户区。系统区用于存放操作系统,而用户区只能运行一个用户程序。这种方式实现简单,不需要复杂的内存管理机制,但是内存利用率很低,因为即使用户程序很小,也要独占整个用户区,不支持多道程序并发执行。
固定分区分配是对单一连续分配的改进,它将用户空间划分为若干个固定大小的分区,每个分区可以装入一个作业,从而支持多道程序的并发执行。系统使用分区说明表来管理各个分区的状态,记录分区号、大小和是否已分配等信息。但是这种方式存在内部碎片问题,当作业大小小于分区大小时,分区内剩余的空间无法被利用,造成内存浪费。
动态分区分配有四种主要算法。首次适应算法从空闲分区链表头开始查找,选择第一个满足要求的分区。最佳适应算法选择大小最接近请求大小的分区,以减少碎片。最坏适应算法选择最大的空闲分区,希望分配后剩余部分仍然有用。邻近适应算法从上次分配的位置开始查找,避免总是从头开始搜索。每种算法都有其特点和适用场景。
动态分区的回收过程需要考虑四种情况。当回收分区的前面或后面有空闲分区时,需要将它们合并成更大的空闲分区。如果前后都有空闲分区,则三个分区合并为一个。如果前后都没有空闲分区,则回收的分区单独成为新的空闲分区。为了解决外部碎片问题,可以使用紧凑技术,通过移动进程将所有空闲空间合并成一个连续的大空闲区域。