操作系统第四章4剖析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
F
缺页 F 标志
F
F
缺页15次,总访问次数20次,缺页率15/20=75%
9
5.3.2 最近最久未使用(LRU)置换算法
1. LRU(Least Recently Used)置换算法
算法:最近最久未使用置换算以“最近的过去”作为“不久
将来”的近似,选择最近一段时间内最久没有使用的页面淘汰 掉。它的实质是:当需要置换一页时,选择在最近一段时间里 最久没有使用过的页面予以淘汰 。
间间隔右移一位,则具有最小数值的寄存 器所对应的页面,就是最近最久未使用的 页面。
12
实页
t0
R7 0 1 R7 0 0 R7 0 0 R7 1 0
第四章
存储器管理
赵恒 主讲
§5.3 页面置换算法
定义:
在进程运行过程中,若其访问的页面不在内存 而需将其调入,但内存已无空闲空间时,需从 内存中调出一页程序或数据,送入磁盘的对换 区。但应将哪个页面调出,需根据一定的算法 来确定。把选择换出页面的算法称为页面置换 算法,其好坏直接影响系统的性能。 一个好的置换算法应具有较低的页面更换频率。 从理论上讲,应将那些以后不会再访问的页面 换出,或者把那些在较长时间内不会再访问的 页面换出。
7
(2)实现:已调入内存的页面,按先后次序链接成一队列。 (3)依据: 先进入的可能已经使用完毕。 (4) 随着物理块数的增多缺页率增大!(Belady现象) Belady异常现象:一般而言,分配给进程的物理块越多,运 行时的缺页次数应该越少。但是Belady在1969年发现了一个 反例,使用FIFO算法时,四个物理块时的缺页次数比三个物 理块时的多,这种反常的现象称为Belady异常。
缺页 F 标志
F
F
缺页9次,总访问次数20次,缺页率9/20=45% 6
2. 先进先出(FIFO) (1)原理:该算法总是淘汰最先进入内存的页面, 即选择 在内存中的驻留时间最久的页面予以淘汰 。
该算法实现简单,只需把一个进程已调入内存的
页面,按先后次序链接成一个队列,并设置一个 指针,称为替换指针,使它总是指向最老页面。
2
抖动(颤动)现象(Thrashing) 请求页式存储管理系统中,若页面置换算法 不当,可能会导致下面的情形:刚被调出得 页面,不久又要访问,因此要调入,调入后 不久又被淘汰,再访问再调入,如此反复, 整个系统的页面置换十分频繁,CPU时间主 要花费在页面的交换上。这种导致系统效率 急剧下降的现象称为抖动现象。 缺页中断率过高
3
§5.3 页面置换算法
页面置换的过程
(1)找出所需页面在磁盘上的
位置; (2)找出可用空闲内存块。如 果有,就立即使用,否则,就 进行页面置换,选择一个老的
页面置换到外存磁盘。
(3)将所需页面装入内存,修 改相应的数据结构。 (4)继续执行用户进程。
4
§5.3 页面置换算法
1. 最佳(Optimal)置换算法
其它算法优劣的一个标准。 ⑴ 算法:淘汰永不使用的或是在最长时间内不再被访问的页。 ⑵ 通常可保证获得最低的缺页率。 ⑶ 无实现价值,作为其它算法的衡量标准。 5
1.最佳(Optimal)置换算法
假定系统为某进程分配了三个物理块, 并考虑有以下的页 面号引用串:7,0,1,2,0,3,0,4,2,3,0,3,2, 1,2,0,1,7,0,1。
10
LRU的实现:
把LRU算法作为页面置换算法是比较好的,它对于各种类型 的程序都能适用,但实现起来有相当大的难度,因为它要求 系统具有较多的支持硬件。所要解决的问题有: 一个进程在内存中的各个页面各有多久时间未被进程访问; 如何快速地知道哪一页最近最久未使用的页面。 为此,须利用以下两类支持硬件: 1.移位寄存器:定时右移。
引用 序列 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1
7 7 0 7 0 1 2 0 1 F 2 0 1 2 0 3 F 2 0 3 2 4 3 F 2 4 3 2 4 3 2 0 3 F 2 0 3 2 0 3 2 0 1 F 2 0 1 2 0 1 2 0 1 7 0 1 F 7 0 1 7 0 1
引用 序列 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1
7 7 0 7 0 2 0 2 0 2 3 2 3 4 3 4 2 4 2 0 2 0 2 0 2 0 1 0 1 0 1 0 1 7 1 7 0 7 0
1
1
F
1
1
F
0
F
0
F
0
F
3
F
3
F
3
3
3
F
2
F
2
2
2
F
2
F
2.栈:当进程访问某页时,将其移出压入“栈顶”,“栈底” 换出。
11
最近最久未使用(LRU)置换算法
LRU置换算法的硬件支持 寄存器 为了记录某进程在内存中各页的使用情况, 须为每个在内存中的页面配置一个移位寄 存器,可表示为 R=Rn-1Rn-2Rn-3 … R2R1R0
访问时将Rn-1位置成1,定时信号每隔一时
最佳置换算法(OPT,Optimal):最佳置换算法置换那些以 后永不再使用的或者在最长的时间以后才会用到的页面。显 然,这种算法的缺页率最低。然而,该算法只是一种理论上 的算法,因为很难估计哪一个页面是以后永远不再使用或在 最长时间以后才会用到的页面,所以,这种算法是不能实现
的。尽管如此,该算法仍然是有意义的,可以把它作为衡量
举例:设进程有5页,访问顺序:0,1,2,3,0,1,4,0, 1,2,3,4, 分3块物理块和4块物理块时。
内存3个物理块: 内存4个物理块:
缺页率=9/12 缺页率=10/12
8
2.先进先出(FIFO)页面置换算法
假定系统为某进程分配了三个物理块, 并考虑有以下的页 面号引用串:7,0,1,2,0,3,0,4,2,3,0,3,2, 1,2,0,1,7,0,1。
引用 序列 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1
7
7
0
7
0 1 F
2
0 1 F
2
0 1
2
0 3 F
2
0Biblioteka Baidu3
4
0 3 F
4
0 2 F
4
3 2 F
0
3 2 F
0
3 2
0
3 2
1
3 2 F
1
3 2
1
0 2 F
1
0 2
1
0 7 F
1
0 7
1
0 7
缺页 F 标志
F
缺页12次,总访问次数20次,缺页率12/20=60%