连续存储管理 页式管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.1 连续空间分配 5.1.1单道连续分配
特点:任一时刻内存只有一道作业,该 作业连续存放于内存中。
一、管理方法 内存空间安排
0 a 操作系统 a+1
界地址寄存器
用户程序
n
越界检查机构:用户程序每访问一次主 存,越界检查机构将访问的地址与界地 址寄存器中的值比较。若越界,则终止 其执行。
界地址寄存器
CPU 地址A < True
+
F
主存
程序性中断
二、调度
OS
多 ... 3k 4k 1k 2k
4k
队 列
...
5k 6k
6k
法 ... 7k 10k 11k 8k
12k
OS
单
4k
队 列 ... 7k 3k 4k 5k
6k
法
12k
三、存储碎片
内部碎片:内存某存储区间大于其存放作 业空间的部分。
外部碎片:内存某存储区间容不下要运行 的作业时。
第11讲 连续存储分配、页式存储管 理
目的与要求:了解连续存储分配,掌握 页式存储管理。 重点与难点:连续可变存储管理;页式 存储管理。 作业:5,6,7,10
第五章 存储管理
研究三方面的问题:
• 取(fetch)
请调、预调
• 放(placement) 连续、非连续
• 替换(replacement)
空闲队列头
3 Bitmap数组
21
{1,1,1,0,0,1,0,0,0,0,1,0,0}
4 1 2
紧致:通过移动作业位置可以将零散的空闲块连 接成大块。要求作业动态可浮动。
5.2 不连续空间分配 5.2.1页式管理
特点:作业(进程)分成页面,内存也划分 成页面,将作业(进程)页面不连续地分布 到内存页面。 一、空间安排
• 用户进程空间(地址)叫逻辑空间(地址) • 内存空间(地址)叫物理空间(地址), • 用相同长度为单位对逻辑空间等分出的每 个区域叫页,对物理空间等分出的区域叫页 帧.
分配:初始时,所有页帧都在空闲队列中, 当用户进程被创建时,系统按需要量从空 闲队列获得相应量的页帧。
回收:当进程结束时,系统回收它的所有 物理页帧入空闲队列。
上界寄存器
下界寄存器
CPU 地址A
True
>
<
F
F
True 主存
程序性中断
2.基址寄存器、长度寄存器和动态地址转 换机构。当作业被调度运行时,将作业所 占内存基址及长度送基址、长度寄存器, 每次内存访问时,先看访问地址是否小于 长度,然后+基址进行访存。用户程序代码 是可动态浮动的。
长度寄存器
基地址寄存器
二、动态地址转换机构 因页式方法中逻辑地址与物理地址之间
失去自然联系,故要通过页表,并由硬件 动态地址转换机构将逻辑地址映射成物理 地址才能正确访存。
(一)页表 页表放在系统空间的页表区,存放逻辑页与物理 页帧的对应关系。PCB表中有指针指向页表。
逻辑空间
0
页1 号2
3 4
页表
1 8 5 3 0
物理空间
举例:假设任一时间段内,内存中每一作业 的运行时间相等。
作业到来次序 所需存储量
1
60
2
100
3
30
4
70
5
50
0 40
OS JJ51 J4J2 J3
运行时间 10 5 20 8 15
256
分配:分配策略包括首次满足法/最佳满足 法/最大满足法,在找到合适的空闲块后, 从其中将作业大小的空间分给作业,而剩余 部分挂入空闲队列。
OS
4k 3K
12k
作业长度:5K、8K、
12K
OS
外部碎片
4k
6k
内部碎片
12k
5.1.3 多道连续可变划分法
特点:多道、连续、但不固定划分内存。
一、管理方法
系统设置一个空闲块队列,初始状态时队列 中只有一个连续的空闲块。作业到达后,以某 种策略分配空间。作业撤离时,将释放的空间 加入空闲队列。
特点:任一时刻内存可有多道作业,每道作业 连续存放于内存.
一、管理方法
将用户内存空
间分成长度固定
的若干块。
用
户
空
间
操作系统 U1 ...
Un
地址访问保护有两种方式:
1.上下界寄存器和地址检查机构。当作业 被调度运行时,作业在内存中的上下界地 址送上下界寄存器,每次内存访问时,地 址检查机构作越界检查。作业程序是绝对 地址或静态可浮动的。
5. 否则将k分成k1、k2,其中k1分给用户 size(k1)=size(v), F = F + {k2}
回收: 当作业结束时,收回作业所占空间,
将此块链入空闲队列。
若空闲队列中原来有与此块的相邻块, 则把这些块合并成一个大连续块。
二、可用空间管理
除用队列表示可用空闲块外,也可以用数组 登记可用空闲块,数组项=用户空间总量/基本 分配单位。
下面F是空闲块集合; size(k)为块k的大小; size(v) 为用户所需空间。
1.if 所有属于F的k,均有size(k)<size(v),则失败。
2.否则按某一策略选出k,使得size(k)≥size(v).
3.F = F – {k};
(续分配)
4. if size(k)-size(v)<基本单位,则Biblioteka Baiduk分给 用户。
页面大小为2的k次幂的地址转换原理如下:
n
P
k-1
0
d
页表始地 + 页表 f
n
f
k-1
0
d
(四)联想存储器
CPU有一个用于页号→页帧号转换的联想
存储器。将页表存入联想存储器的地址转
地址A
true
cpu
A> a?
主存
false
终止程序运行
二、覆盖(overlap)
因内存小于作业的程序空间而引入覆盖,将用 户空间划分成一个固定区和多个覆盖区。主程 序放固定区,依次调用的子程序则放在同一个 覆盖区。操作系统提供覆盖系统调用函数,由 用户编程序时在转子前调用。
操作系统 固定区(4k) 覆盖区(6k) 覆盖区(10k)
0 1 2 3 4 5 6 7 8 9
(二)地址结构
逻辑地址 = p(页号).d(页内位移) 物理地址 = f(页帧号).d(同上)
p = 线性逻辑地址 / 页面大小; d = 线性逻辑地址 - p*页面大小。
0
页1 号2
3 4
(三)页面大小的考虑
将页面大小取成2的k次幂(k是正整数),获取p和 d的除、乘法只要通过位移实现.
A(4k)
B(6k) F(8k)
C(4k)
D(6k)
E(10k)
三、交换 多道程序设计的要求
基本思想:将处于等待状态(等I/O)或就 绪(等CPU)状态的进程从主存换出到辅存, 把将要执行的进程移入主存。
为了支持交换,必须在系统空间设立I/O缓 冲区。
交换要花费较长的时间。
5.1.2 多道固定划分法