电子科枚大学 软件技术基础 2.9分区管理 主讲教师:刘民岷 ■ 航空航天学院 软件技术基础课程组
软件技术基础 2.9 分区管理 主讲教师:刘民岷 航空航天学院 软件技术基础课程组
分区管理基本思想 把内存划分成若干连续区域,每个作业可以占用一个或多 个分区 0 操作系统 20K 进程A(6K) 第1分区 区号 分区长度 起始地址 28K 进程B(25K) 1 8K 20K 第2分区 60K 2 32K 28K 进程C(36K) 第3分区 3 64K 60K 124K 4 132K 124K 第4分区 256K A内存分配表 B内存状态 电子科技大学刘民岷 分区管理 2
电子科技大学 刘民岷 2 1、分区管理基本思想 分区管理 • 把内存划分成若干连续区域,每个作业可以占用一个或多 个分区 分区长度 8K 2 64K 132K 32K 起始地址 20K 28K 60K 124K 区号 1 2 3 4 A 内存分配表 操作系统 进程A(6K) 进程B(25K) 进程C(36K) 20K 0 28K 60K 124K 256K 第1分区 第2分区 第3分区 第4分区 B 内存状态
2、固定分区 口将内存分为若干区域,系统和用户作业分别占用; 口分区划分后,其长度和数量保持不变; 口系统设置一内存分配表,记录分区号、起始地址、大小及占用情况。 如图所示: 0 操作系统 20K 进程A(6K) 第1分区 区号 分区长度 起始地址 28K 进程B(25K) 8K 20K 第2分区 60K 2 32K 28K 进程C(36K) 第3分区 3 64K 60K 124K 4 132K 124K 第4分区 256K A内存分配表 B内存状态 ⑦内零头 电子科技大学刘民岷 分区管理
电子科技大学 刘民岷 3 2、固定分区 分区管理 将内存分为若干区域,系统和用户作业分别占用; 分区划分后,其长度和数量保持不变; 系统设置一内存分配表,记录分区号、起始地址、大小及占用情况。 如图所示: 分区长度 8K 2 64K 132K 32K 起始地址 20K 28K 60K 124K 区号 1 2 3 4 A 内存分配表 操作系统 进程A(6K) 进程B(25K) 进程C(36K) 20K 0 28K 60K 124K 256K 第1分区 第2分区 第3分区 第4分区 B 内存状态
3、可变分区 口分区大小可以随作业的要求改变,分区的数量也可以改变; 口两张表:已分配分区表、未分配分区表。表项为存储控制块 MCB(Memory Control Block); ▣空闲分区控制块按某种次序构成FMCB链结构: 口作业申请内存时,系统在未分配分区表中查看是否有足够大的 空闲分区,将其划分出作业要求大小的一部分,另一部分为空 闲。同时修改两个分配表; ▣作业释放时回收内存,并将相邻的空闲区合并; ▣ 会产生“外零头”一一极小的分区。解决方法:拼接、 紧缩。 可变分区情况如下页图示! 电子科技大学刘民岷 分区管理 4
电子科技大学 刘民岷 4 3、可变分区 分区管理 分区大小可以随作业的要求改变,分区的数量也可以改变; 两张表:已分配分区表、未分配分区表。表项为存储控制块 MCB(Memory Control Block); 空闲分区控制块按某种次序构成FMCB链结构; 作业申请内存时,系统在未分配分区表中查看是否有足够大的 空闲分区,将其划分出作业要求大小的一部分,另一部分为空 闲。同时修改两个分配表; 作业释放时回收内存,并将相邻的空闲区合并; 会产生“外零头”--极小的分区。解决方法:拼接、紧缩。 可变分区情况如下页图示!
3、可变分区(续) 例:可变分区分配及拼接技术 OS OS OS OS 4K 作业1 作业1 作业1 4K 作业1 6K 作业2 作业6 4K 作业6 作业2、4 作业6进入 空闲区 释放S 作业3释放 4K 合并S 作业3 作业3 10K 4K 作业4 6K 作业5 作业5 作业5 6K 作业5 电子科技大学刘民岷 分区管理 5
电子科技大学 刘民岷 5 3、可变分区(续) 分区管理 例:可变分区分配及拼接技术 4K 6K 4K 4K 6K 作业2、4 释放 OS 作业1 作业2 作业3 作业4 作业5 OS 作业1 作业3 作业5 作业6进入 作业3释放 OS 作业1 作业6 作业5 空闲区 合并 OS 作业1 作业5 作业6 4K 4K 10K 6K
3、可变分区(续) 分区分配策略一如何给新任务分配分区? (l)首次适应算法FF(First Fit.) 未分配分区按地址从小到大排列,每次分配时顺序查找分区分配表,选 择所遇到的第一个足以满足请求容量的内存空闲区进行分配。 (2)最佳适应算法BF(Best Fit) 将空闲区按其大小从小到大的次序排列,每次分配时总是从头顺序查找 未分配分区表,找到第一个能满足要求的最小空闲区进行分配。 (3)最坏适应算法WP(Worst Fit). 最坏适应算法要求空闲区按照丛大到小的顺序排列,每次分配时总是挑 选一个最大的空闲区分配给作业。 最佳适应算法最佳吗? ·最坏适应算法最坏吗? 电子科技大学刘民岷 分区管理 6
电子科技大学 刘民岷 6 3、可变分区(续) 分区管理 分区分配策略——如何给新任务分配分区? (1) 首次适应算法FF(First Fit) 未分配分区按地址从小到大排列,每次分配时顺序查找分区分配表,选 择所遇到的第一个足以满足请求容量的内存空闲区进行分配。 (2) 最佳适应算法BF(Best Fit) 将空闲区按其大小从小到大的次序排列,每次分配时总是从头顺序查找 未分配分区表,找到第一个能满足要求的最小空闲区进行分配。 (3) 最坏适应算法WF(Worst Fit) 最坏适应算法要求空闲区按照从大到小的顺序排列,每次分配时总是挑 选一个最大的空闲区分配给作业。 • 最佳适应算法最佳吗? • 最坏适应算法最坏吗?