6.3.1原理 把内存分为一些大小相等或不等的分区( partition), 每个应用进程占用一个或几个分区。操作系统占 用其中一个分区。 特点:适用于多道程序系统和分时系统 支持多个程序并发执行 难以进行内存分区的共享。 问题:可能存在内碎片和外碎片。 内碎片:占用分区之内未被利用的空间 外碎片:占用分区之间难以利用的空闲分区(通常是 小空闲分区) 返回
6.3.1 原理 • 把内存分为一些大小相等或不等的分区(partition), 每个应用进程占用一个或几个分区。操作系统占 用其中一个分区。 • 特点:适用于多道程序系统和分时系统 – 支持多个程序并发执行 – 难以进行内存分区的共享。 • 问题:可能存在内碎片和外碎片。 – 内碎片:占用分区之内未被利用的空间 – 外碎片:占用分区之间难以利用的空闲分区(通常是 小空闲分区)。 返回
分区的数据结构:分区表,或分区链表 可以只记录空闲分区,也可以同时记录空 闲和占用分区 分区表中,表项数目随着内存的分配和释 放而动态改变,可以规定最大表项数目。 分区表可以划分为两个表格:空闲分区表, 占用分区表。从而减小每个表格长度。空 闲分区表中按不同分配算法相应对表项排 序
• 分区的数据结构:分区表,或分区链表 – 可以只记录空闲分区,也可以同时记录空 闲和占用分区 – 分区表中,表项数目随着内存的分配和释 放而动态改变,可以规定最大表项数目。 – 分区表可以划分为两个表格:空闲分区表, 占用分区表。从而减小每个表格长度。空 闲分区表中按不同分配算法相应对表项排 序
内存紧缩( compaction):将各个占用分区向内 存一端移动。使各个空闲分区聚集在另一端, 然后将各个空闲分区合并成为一个空闲分区。 对占用分区进行内存数据搬移占用CPU时间 如果对占用分区中的程序进行"浮动",则其重定 位需要硬件支持。 紧缩时机:每个分区释放后,或内存分配找不到 满足条件的空闲分区时
• 内存紧缩(compaction):将各个占用分区向内 存一端移动。使各个空闲分区聚集在另一端, 然后将各个空闲分区合并成为一个空闲分区。 – 对占用分区进行内存数据搬移占用CPU时间 – 如果对占用分区中的程序进行"浮动",则其重定 位需要硬件支持。 – 紧缩时机:每个分区释放后,或内存分配找不到 满足条件的空闲分区时
632固定分区( fixed partitioning) 把内存划分为若干个固定大小的连续分区。 分区大小相等:只适合于多个相 同程序的并发执行(处理多个类 型相同的对象)。 分区大小不等:多个小分区、适 量的中等分区、少量的大分区。 根据程序的大小,分配当前空闲 的、适当大小的分区。 返回
6.3.2 固定分区(fixed partitioning) • 分区大小相等:只适合于多个相 同程序的并发执行(处理多个类 型相同的对象)。 • 分区大小不等:多个小分区、适 量的中等分区、少量的大分区。 根据程序的大小,分配当前空闲 的、适当大小的分区。 返回 把内存划分为若干个固定大小的连续分区
Operating System Operating System 8 M 8 M 2 M 4 M 8 M 6M 8 M 8 M 8 M 8 M 8 M 12M 固定分区(大小相同) 固定分区(多种大小)
8 M 8 M 8 M 8 M 8 M Operating System Operating System 8 M 12 M 8 M 8 M 6 M 4 M 2 M 固定分区(大小相同) 固定分区(多种大小)