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