第三章进程管理.ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解决页表太大办法
– 采用离散方式存放页表
• 两级页表(用于32位的CPU) • 多级页表(用于64位的CPU)
– 只调入部分页表项
存储管理:页式管理
2.请求分页虚拟存储管理(6)
两级页表
– 逻辑地址结构
31
P1
12 11
0
P2
位移量W
– 将一个大的页表(如有1M个页表项)分成大小相等子 页, 0#页 1#页....n#页, 每一页用连续的空间存储,但 子页可离散地存储。
存储管理:页式管理
2.请求分页虚拟存储管理(18)
抖动
– 抖动: 分给作业的物理块太少或置换算法不当引发的 频繁的产生缺页中断。
CPU使用率低 引入新进程
缺页/淘汰其它进程的物理块 其它进程缺页增加 等待调页进行阻赛
恶性循环
存储管理:页式管理
2.请求分页虚拟存储管理(19)
工作集模型
– 工作集“△”是程序局部性的一个近似
第四章 存储器管理 3
Memory Management
存储管理:页式管理
2.请求分页虚拟存储管理(5)
问题
– 大多数计算机能支持非常大的逻辑地址空间(232~264) – 例地址空间232,每页4KB,共有1MB个页面,若采用VM
方式,每个页表项要占多个字节(假设4个字节),则需要 4MB的空间来存放页表
• 分配给某作业3个内存物理块 • 页面访问序列为3,5,1,2,3,1,5,1,2,3,4,1,3,1,5
存储管理:页式管理
2.请求分页虚拟存储管理(14)
1.最佳置换算法(OPT)
– 选择永不再被使用或很久才被访问的页面淘汰 – 一种理论上的算法,常于评价其他算法的优劣程度
P 3 5 11 22 3 1 5 1 2 3 4 1 3 1 5
2.请求分页虚拟存储管理(12)
页面的调入策略
请求分页系统中,外存=文件区+对换区
1.若有足够多的对换区,将作业有关的文件从文件区拷 贝到对换区
2.与作业有关的文件都放于文件区,未运行的页面均应 从文件区调入,换出页面放于对换区
存储管理:页式管理
页面置换算法
在进程运行过程中,如果发生缺页,此时内存中又无空闲块 时,为了保证进程能正常运行,就必须从内存中调出一页程 序或数据送磁盘的对换区。但将哪个页面调出,则须根据一 定的页面置换算法来确定。置换算法的好坏将直接影响系统 的性能,不适当的算法可能会导致进程发生“抖动” (Thrashing)。即刚被换出的页很快又被访问,需重新调入, 导致系统频繁地更换页面,以致一个进程在运行中把大部分 时间花费在完成页面置换的工作上,我们称该进程发生了 “抖动”(颠簸)。
存储管理:页式管理
2.请求分页虚拟存储管理(10)
页面分配
– 为每一作业分配物理块的数量是固定或可变? – 是采取平均分配还是根据作业的大小比例?
内存页面的分配和置换策略
– 固定分配局部置换
• 每作业分配固定数量的物理块,作业缺页时从该作业所分的物理块 中选择置换
• 问题: 若太少....若太多....
• u=0 m=0 未用过,未修改过,最佳淘汰页面 • u=0 m=1 未用过,但改过,不是最佳淘汰页面 • u=1 m=0 最近用过,但未被修改,可能被再次使用 • u=1 m=1 最近用过,被修改过,可能被再次使用
– 算法需要重复多次Clock算法
• 从当前位置找u=0,m=0的页面,有则淘汰 • 否则第二遍找u=0,m=1的页面,同时将u置为0,有则淘汰 • 否则第三遍找u=0,m=0的页面,有则淘汰 • 否则第四遍找u=0,m=1的页面,(肯定会找到)
33 33 33 33 3 3 5 5 5 5 4 4 4 4 4
M=
55 55 252 2 2 2 2 2 3 3 3 3 3 3
3
11 11 1 1 1 1 1 1 1 1 1 1 5
F vv vv v vv
v
vv
v
缺页率 f = 8 / 15 = 53%
存储管理:页式管理
2.请求分页虚拟存储管理(15)
存储管理:页式管理
2.请求分页虚拟存储管理(7)
两级页表结构示意图
存储Fra Baidu bibliotek理:页式管理
2.请求分页虚拟存储管理(8)
两级页表地址转换机构
存储管理:页式管理
2.请求分页虚拟存储管理(9)
多级页表
– 264地址空间中宜采用多级页表 – SUN公司的SPARC采用三级页表 – Motorola 68030采用四级页表结构
– 每页增设一个访问位,访问过的页面访问位置1 – 将内存中的页链成一个循环队列,查询指针循环移动
入口
查寻指针前进一步 指向下一个表目
访问位=0? F Y
选择该页淘汰
访问位置 0
返回
存储管理:页式管理
2.请求分页虚拟存储管理(18)
5.改进型Clock算法
– Clock算法加上置换代价(尽量选择未修改过的页面淘汰) – 每页有访问页u 和 修改位m
存储管理:页式管理
2.请求分页虚拟存储管理(16)
3.最近最久未用页面置换算法(LRU)
– 选择在最近一段时间内不常用的页面进行淘汰
– 需要周期性地对“页面访问位”进行检查,记录 上次访问以来经历的时间
– 该类算法实现较困难,常用近似该算法的Clock 算法
P 3 5 1 2 3 1 5 1 234 1 3 1 5
...161567675162324124234343432332...
△=10 t1
△=10 t2
WS(t1)={1,5,6,7}
WS(t2)={2,3,4}
– 操作系统管理每一作业的工作集,为作业分配足够的 物理块,以容纳它的工作集
– 若有空闲块可考虑引入新进程
– 若各作业工作集总和超过可供使用的物理块数,OS选 择一个作业暂停执行,页面写回外存
图中可以看出,缺页率随着所分得的物理块数目的减少而递增,并在所 分到的物理块数目较少处,出现一个拐点。在拐点上限以左时,随着分 到的物理块数目的增加,缺页率明显地减少;而过了拐点,在下限以右 时,随着分到的物理块数目的增加,却对缺页率的改善并不明显。所以, 为进程分配的物理块数,应取在该曲线的拐点左右。
缺页率
拐点
所分得的物理块数
工作集的理论是在1968年由Denning提出来的。他认为,程序在运行时对 页面的访问是不均匀的,即往往在某段时间内的访问仅局限于较少的若 干个页面,如果能够预知程序在某段时间间隔内要访问哪些页面,并能 将它们提前调入内存,将会大大地降低缺页率,从而减少置换工作,提 高 CPU的利用率。
– 可变分配全局置换
• 运行时分配固定物理块,有一个闲块池,缺页时从池中取来用,若池 空则可置换任何作业的页
– 可变分配局部置换
• 运行时分配固定物理块,缺页时只能置换该作业的页,若缺页频繁, 系统为该作业增加若干附加块,若某作业缺页率特别低,可适当减少 分配的块数
存储管理:页式管理
2.请求分页虚拟存储管理(11)
从理论上讲,应将那些以后不再被访问的页面换出,或把那 些在较长时间内不会再被访问的页面换出。下面介绍几种常 用的置换算法。
存储管理:页式管理
2.请求分页虚拟存储管理(13)
页面置换算法
– 已无空闲块时发生缺页应选择某页淘汰,称为 置换
– 置换策略称为置换算法 – 缺页次数F , 总页面访问次数n – 缺页率 f = F / n – 假定:
3 3 3 2 2 2 5 5 533 3 3 3 3
M=
5 5 5 3 3 3 3 222 1 1 1 1
3
1 1 1 1 1 1 114 4 4 4 5
Fvvvvv
v
vvv v
v
缺页率 f = 11 / 15 = 75%
存储管理:页式管理
2.请求分页虚拟存储管理(17)
4.简单的Clock算法
页面分配算法
– 平均分配算法
• 未能考虑作业的实际大小
– 按比例分配算法
• Bi = M(空闲块数)* Si(作业i的页面数) / S(全部作业页面总数) • Bi 要取整,且>作业运行所需块数
– 考虑优先权的分配算法
• 可为作业设置优先权 • 根据作业大小和优先权确定分配数量
存储管理:页式管理
2.先进先出页面置换算法(FIFO)
– 选择在内存中驻留时间最久的页面进行淘汰
– 问题:含全局变量/常用函数的页面使用率较 高
P351231512341315
333222211144444
M=
55533332221111
3
1111555333335
Fvvvvv
vvvvvv
v
缺页率 f = 12 / 15 = 80%
访问顺序1,3,2,4,5,6,1,2,4,5,4,3 分配3个块, OPT, FIFO , LRU 计算缺页次数和缺页率
相关文档
最新文档