第四章存储器管理 优点:易于实现,开销小。 缺点 内碎片造成浪费; 分区总数固定,限制了并发执行的程序数目
第四章 存 储 器 管 理 ▪ 优点:易于实现,开销小。 ▪ 缺点: ➢ 内碎片造成浪费; ➢ 分区总数固定,限制了并发执行的程序数目
第四章存储器管理 42.3动态分区分配方式 动态创建分区:在装入程序时按其初始要求分 配,或在其执行过程中通过系统调用进行分配 或改变分区大小。 优点:没有内碎片 缺点:有外碎片;如果大小不是任意的,也可 能出现内碎片
第四章 存 储 器 管 理 4.2.3 动态分区分配方式 ▪ 动态创建分区:在装入程序时按其初始要求分 配,或在其执行过程中通过系统调用进行分配 或改变分区大小。 ▪ 优点:没有内碎片。 ▪ 缺点:有外碎片;如果大小不是任意的,也可 能出现内碎片
第四章存储器管理 进程A(8K)进程B(16K)进程C(64K)进程D(124K) OS OS OS OS 进程A 进程A 进程A 进程A 进程B 进程B 进程B 进程C 进程C 进程D
第四章 存 储 器 管 理 进程 A(8K) 进程 B(16K)进程 C(64K)进程 D(124K) … OS 进程A 进程B 进程C 进程D OS 进程A 进程B 进程C OS 进程A 进程B OS 进程A
第四章存储器管理 1.分区分配中的数据结构 空分区表:记录每个空闲分区的情况,包括 分区序号、分区始址、分区大小等。 空闲分区链 >在每个空闲分区的起始部分开辟出一个单元 存放一个链表指针和该分区的大小,在尾部则 设置一后向指针。 >系统中用一个固定单元作为空闲分区链表的链 表头指针,指向第一块空闲分区首地址,最后 块空闲分区的链表指针存放链尾标志 当分区被分配出去以后,状态位由“0”改为 “1”,此时前后指针无意义
第四章 存 储 器 管 理 1. 分区分配中的数据结构 ▪ 空闲分区表:记录每个空闲分区的情况,包括 分区序号、分区始址、分区大小等。 ▪ 空闲分区链: ➢ 在每个空闲分区的起始部分开辟出一个单元, 存放一个链表指针和该分区的大小,在尾部则 设置一后向指针。 ➢ 系统中用一个固定单元作为空闲分区链表的链 表头指针,指向第一块空闲分区首地址,最后 一块空闲分区的链表指针存放链尾标志。 ➢ 当分区被分配出去以后,状态位由“0”改为 “1” ,此时前后指针无意义
例:采用双向链的空闲分区链结构 状态位大小指针 状态位大小指针 0H+2前向指针 1 N+2 W个字节(空闲区 N个字节 0M+2后向指针 1N+2 ee 0H+2 0K+2 0j+2 0H+21 0K+2 0J+21
第四章 存 储 器 管 理 例:采用双向链的空闲分区链结构