页面置换算法知识回顾和习题

知识回顾

在这里插入图片描述

练习

习题一

内容:

某页式虚拟存储管理系统中,页面大小为1KB。给某一进程分配的内存块数为3 ,并按下列地址顺序引用内存单元:
3635、3632、1140、3584、2892、3640、0040、2148、1700、2145、3209、0000、1102、1100。
如果上述数字均为十进制数,而内存中尚未装入任何页。

(1) 给出使用LRU算法时的缺页次数。
(2)用流程图的方式解释地址变换的过程。(缺页时只需指出产生缺页中断以请求调页,具体的中断处理流程不需画出)

解答
(1)根据题意,页面的引用次序为3、3、1、3、2、3、0、2、1、2、3、0、1、1,则根据LRU算法依次访问各页,各内存块中的页面置换情况为(加粗页面表示刚调入内存):

访问页面 3 3 1 3 2 3 0 2 1 2 3 0 1 1
内存块1 3 3 3 3 3 3 3 3 1 1 1 0 0 0
内存块2 1 1 1 1 0 0 0 0 3 3 3 3
内存块3 2 2 2 2 2 2 2 2 1 1
是否缺页

故可以看出,LRU算法时的缺页次数为8次。


PS:解题过程中需要进行淘汰页面的选择时,可以通过逆向检查此时在内存中的几个页面号,在逆向扫描过程中最后一个出现的页面就是要淘汰的页面。

例如此时分析到需要页面0,而此时内存已满,需要选一个页面淘汰,进行页面置换:那此时内存中的页面是3、1、2,然后逆向扫描之前访问的页面,三个页面当中1是最早访问的,也是最近最久未使用的页面,故将页面1淘汰,将需要的页面0调入。
在这里插入图片描述
页面置换之后:
在这里插入图片描述
其他分析过程类似。


(2)假设没有快表机构,其地址变换过程为:

Created with Raphaël 2.2.0开始页号 > 页表长度?越界中断访问页表页在内存?修改访问位和修改位形成物理地址地址变换结束产生缺页中断请求调页yesnoyesno

习题二

题目内容:
在一个请求分页系统中,假定分配给一个进程的物理块数为3,并且此进程的页面走向为2、3、2、1、5、2、4、5、3、2、5、2。
试用FIFO、LRU和OPT三种算法分别计算出在访问过程所发生的缺页次数。

解答:
FIFO算法:优先淘汰最早进入内存的页面,可以把进入内存的页面根据调入顺序形成一个队列,需要置换页面时将队列头淘汰

访问页面 2 3 2 1 5 2 4 5 3 2 5 2
内存块1 2 3 2 2
内存块2 3 3 3
内存块3 1
是否缺页
2
3
1

所以把2淘汰,页面5调入:

访问页面 2 3 2 1 5 2 4 5 3 2 5 2
内存块1 2 3 2 2 5
内存块2 3 3 3 3
内存块3 1 1
是否缺页
3
1
5

此时应该淘汰页面3,调入2:

访问页面 2 3 2 1 5 2 4 5 3 2 5 2
内存块1 2 3 2 2 5 5
内存块2 3 3 3 3 2
内存块3 1 1 1
是否缺页
1
5
2

分析过程就是这样,所以最后的结果:

访问页面 2 3 2 1 5 2 4 5 3 2 5 2
内存块1 2 3 2 2 5 5 5 5 3 3 3 3
内存块2 3 3 3 3 2 2 2 2 2 5 5
内存块3 1 1 1 4 4 4 4 4 2
是否缺页

故使用FIFO算法在访问过程中所发生的缺页次数为9次。


LRU算法:

访问页面 2 3 2 1 5 2 4 5 3 2 5 2
内存块1 2 2 2 2 2 2 2 2 3 3 3 3
内存块2 3 3 3 5 5 5 5 5 5 5 5
内存块3 1 1 1 4 4 4 2 2 2
是否缺页

故使用LRU算法在访问过程中所发生的缺页次数为7次。


OPT算法:

访问页面 2 3 2 1 5 2 4 5 3 2 5 2
内存块1 2 2 2 2 2 2 4 4 4 2 2 2
内存块2 3 3 3 3 3 3 3 3 3 3 3
内存块3 1 5 5 5 5 5 5 5 5
是否缺页

(倒数第三列,后面只会用到页面5,所以既可以用4号,也可以用3号页面进行替换,置换为页面2。)

故可以看出,使用OPT算法在访问过程中所发生的缺页次数为6次。

PS:OPT算法淘汰那些永不使用,或者在最长时间内不再被访问的页面(预知未来),所以在选择淘汰哪个页面时,和LRU算法刚好相反,可以使用前向扫描方法,在前向扫描过程中最后一个出现的页面就是要淘汰的页面。

比如此时内存已满,存放了2、3、1号页面,要将5号页面置换进来,淘汰页面可以从当前页面开始前向扫描,发现1是后面不会在访问的(1号是永不再使用的),所以淘汰1。
在这里插入图片描述
替换之后,变为:
在这里插入图片描述
个人理解,有误请指正~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章