15连续存储分配
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序D
空闲空间 已用空间
紧凑前
紧凑后
实现
系统采用可重定位分 区分配算法时,程序 要采用动态运行时装 入方式。系统在硬件 上要增加一个“重定 位寄存器”,装载程 序在内存中的起始地 址。
结束
特点:低地址空间频繁使用。
循环首次适应算法
在首次适应算法的基础上,每次查找时从上次 找到空闲分区的下一个空闲分区开始查找。
特点:空闲分区分布均匀,但是会缺乏大的空 闲分区。
最佳适应算法
把能满足要求、又是最小的空闲分区分配给作 业,避免“大材小用”。
特点:分区按照大小顺序排列。
…
大小 16KB 8KB
…
状态 已用表项 已用表项 未用表项 未用表项
…
空闲分区链
前
后
向
向
指
指
针 N个字节 针
N
N
+
+
2
2
分配算法
首次适应算法
首次适应算法要求空闲分区以地址递增的次序 排列。以空闲分区链为例,每次从链首开始顺 序查找,直到找到一个大小能满足需求的空闲 分区为止;然后再按照程序的大小,从该分区 中划分出一块内存空间给请求者,余下的空闲 部分仍留在空闲分区链中。若从空闲分区链中 找不到合适的空闲分区,则分配失败。
回收分区 空闲分区
b 与后一个 空闲分区邻接
空闲分区 回收分区 空闲分区
c 与前后 空闲分区邻接
4.2.4 可重定位分区分配
紧凑:当空闲分区的总量大于程序的大小,
但每个空闲分区容量小于程序的大小时,
移动程序的位置,将空闲分区合并成一个
大的空闲分区。
程序A
程序A
程序B 程序C
程序B 程序C
程序D
4.2.3 动态分区分配
操作系统并不预设固定数目的分区,而 是按照程序的内存需求为其划分存储空间, 内存中的分区数目动态变化,我们将这种存 储器管理方式称为可变分区分配管理方式, 也称之为动态分区分配管理方式。
数据结构
空闲分区表
分区号 1 2 3 4 …
分区始址 0x30002000 0x30008000
学习十五 连续存储分配方式
4.2 连续存储分配方式
给每一个程序分配一片连续的存储空间, 其容量为程序运行时所需的最大空间。
连续分配方式包含单一连续分配、固定 分区分配、动态分区分配以及动态重定位分 区分配四种方式。
4.2.1 单一连续分配
内存分为系统区和用户区,用户区一次只 能装入一个程序运行。
4.2.2 固定分区Βιβλιοθήκη Baidu配
固定分区分配管理方式是将内存划分成固 定数目的区域。
固定分区分配表
分区号 1 2 3 4
长度 8MB 8MB
16MB 32MB
起始地址 0x30000000 0x30800000
0x31000000 0x32000000
状态 未分配 未分配 未分配 未分配
内碎片
固定分区分配管理方式简单,但是由于 分区大小固定,并不能很好的适应每个程序, 分区内部会有小部分存储空间被浪费掉。我 们将分区内部浪费掉的空间称之为内碎片。
最差适应算法
每次从空闲分区中选择最大的空闲分区分配给 程序,以便切割剩余的空闲分区空间不太小。
外碎片
不管采用何种算法,分配时时常不能找 到与所需容量一样的空闲分区,切割操作会 留下或大或小的空闲分区。我们将这些永远 不会被分配的小空闲分区称为外碎片。
回收算法
空闲分区 回收分区
a 与前一个 空闲分区邻接