1.单一连续分配
- 连续分配,指用户进程分配的必须是一个连续的内存空间
- 只支持单道程序,内存分为系统区和用户区,用户程序存放在用户区
- 无外部碎片,有内部碎片
- 实现简单;但只能用于单用户、单任务的操作系统中,可采用覆盖技术;存储器利用率极低
2.固定分区分配
- 支持多道程序,内存用户空间分为若干个固定大小的分区,每个分区只能装一道作业
- 无外部碎片,有内部碎片
- 两种分区方式
- 分区大小相等:缺乏灵活性;适用于一台计算机控制多个相同的对象
- 分区大小不等:增加灵活性
- 操作系统需要建立一个数据结构 — 分区说明表,实现各个分区的分配和回收
3.动态分区分配
- 支持多道程序,在进程装入内存时,根据进程的大小动态的建立分区
- 无内部碎片,有外部碎片
- 外部碎片可用“紧凑”技术来解决
- 回收内存分区,可能遇到四种情况
- 回收区之后有相邻的空闲分区
- 回收区之前有相邻的空闲分区
- 回收区前、后都有相邻的空闲分区
- 回收区前、后度没有相邻的空闲分区
- 记录内存使用的数据结构

4.补充:碎片
4.1内部碎片
- 分配给某进程的内存区域中,如果有些部分没有用上
4.2外部碎片
- 内存中的某些空闲分区由于太小而难以利用
- 可通过紧凑(拼凑,Compaction)技术解决外部碎片