LRU 和 FIFO 页面置换算法

来源:互联网 发布:react router 数据 编辑:程序博客网 时间:2024/04/29 13:58

一道题:

在一个采用页式虚拟存储管理的系统中,有一用户作业,它依次要访问的序列是1,2,3,4,1,2,5,1,2,3,4,5.假定分配给该作业的页数为3且作业初始时未装载页面,那么采用FIFO调度算法产生的缺页中断数为多少,采用LRU调度算法产生的缺页中断数为多少?


答案是:9次和10次。


解析:

条件:初始未装载页面 队列容量是3


FIFO —— 先进先出算法

访问1  缺页  1加入队列      【1】             

访问2  缺页  2加入队列      【1 2】

访问3  缺页  3加入队列      【1 2 3】

访问4  缺页  1出队 4加入队列 【2 3 4】

访问1  缺页  2出队 1加入队列 【3 4 1】

访问2  缺页  3出队 2加入队列 【4 1 2】

访问5  缺页  4出队 5加入队列 【1 2 5】

访问1  不缺页 【1 2 5】

访问2  不缺页 【1 2 5】

访问3  缺页  1出队 3加入队列 【2 5 3】

访问4  缺页  5出队 4加入队列 【5 3 4】

访问5  不缺页【5 3 4】


因此  缺页次数为9次。


LRU —— 最近最少使用算法

特殊的栈实现

栈顶始终是最新访问的页面,

内存不够时将栈底页面移除。

下面"【】"之间从从左到右 对应:栈底 -> 栈顶

访问1  缺页 【1】

访问2  缺页 【1 2】

访问3  缺页 【1 2 3】 

访问4  缺页 【2 3 4】

访问1  缺页 【3 4 1】

访问2  缺页 【4 1 2】

访问5  缺页 【1 2 5】

访问1  【2 5 1】

访问2  【5 1 2】

访问3  缺页 【1 2 3】

访问4  缺页 【2 3 4】

访问5  缺页 【3 4 5】


因此  缺页次数为10次。

0 0