动态分区算法

动态分区分配 (Dynamic Partitioning) 概述

背景: 在可变分区存储管理中,内存空间被划分为若干个大小不等的分区。当一个新作业请求内存时,系统需要从空闲分区表空闲分区链中,按照某种算法选择一个大小合适的空闲分区分配给它。

核心问题: 选择哪个空闲分区?不同的选择策略,会直接影响内存的利用率(即内存碎片问题)和分配效率(即查找开销)。

内存碎片:


1. 基于顺序搜索的分配算法 (Sequential Search Algorithms)

这类算法的核心思想是,当作业请求内存时,系统按顺序遍历一个记录了所有空闲分区的链表,直到找到一个满足条件的分区为止。

1.1 首次适应算法 (First Fit, FF)

1.2 循环首次适应算法 (Next Fit, NF)

1.3 最佳适应算法 (Best Fit, BF)

1.4 最坏适应算法 (Worst Fit, WF)

2. 基于数据结构的快速查找算法

这类算法通过特殊的数据结构来组织空闲分区,从而避免了线性扫描,提高了查找效率。

2.1 快速适应算法 (Quick Fit) / 分离适配 (Segregated Fit)

2.2 伙伴系统 (Buddy System)

总结与考点分析

算法 优点 缺点 碎片情况
首次适应(FF) 简单,高地址保留大块 低地址碎片多,查找有开销 外部碎片
循环首次(NF) 分布均匀,查找开销相对小 缺乏大块空闲区 外部碎片
最佳适应(BF) 保留大块 开销大,易产生大量极小的外部碎片 外部碎片
最坏适应(WF) 减少小碎片 开销大,迅速消耗大块,性能通常不佳 外部碎片
快速适应(QF) 查找极快,分配简单 空间浪费,回收复杂 外部碎片为主
伙伴系统 回收合并快,外部碎片少 内部碎片严重,算法实现相对复杂 内部碎片是主要问题