请求分页置换算法——最近最久未使用算法(LRU)

本文详细介绍了LRU(最近最久未使用)分页算法的策略,通过一个具体的例题演示了该算法的执行过程,揭示了缺页中断的计算方法。在例子中,展示了17次缺页中断的情况,并提供了两个练习题供读者加深理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近最久未使用算法

1、策略

页表中登记每个页被CPU访问的时间,淘汰时选择最近一段时间最久没有被访问的页。

LRU算法的依据是程序的时间局部性原理,即一个页最近被访问后,接下来,被再次访问的可能性很大,相反地,长时间没有被访问的页,之后很可能也不会被访问。

2、例题

一个进程在运行过程中依次访问的页号(也称进程的引用序列)是:0、2、3、1、4、1、2、3、5、2、3、1、4、5、0、3、6、9、8、3、6、7、3、6、9、8、7。假定分配给该进程4个块,按局部页面调度,采用LRU算法时,如何计算缺页中断的次数?依次淘汰的页号是哪些?
在这里插入图片描述

上图的方法是模拟堆栈的方式。图中箭头方向是栈底的方向,栈底方向是较长时间没有被访问的页,而栈顶的页是新近访问的。在访问一个页时,如果该页不在“堆栈”中,则从栈顶进栈,在进栈之前,如果堆栈中的页数已满4页,则删除栈底的页,因为它是最长时间没有被访问的页,将其淘汰并记录在最后一行的正下方;如果当前访问的页已经在“堆栈”中,则将其从所在位置移至栈顶.在“堆栈"中它上方的页依次下移一个位置。

上图中的最后一行给出了进程运行过程中依次沟汰的页号0、4、5、2、3、1、4、5、0、9、8、7和3,共13次.另外加上开始运行时装人的4个页,则共有17次缺页中断,其中13次缺页中断运行了置换算法。

3、练习题

1、假定某请求页式存储管理系统中,为一进程分配了内存物理块3块,考虑以下的页面引用串:1,2,3,4,2,1,4,5,2,1,2,3。
问:若按最近最久未使用(LRU)页面置换算法,请问将发生缺页中断的次数和缺页率(开始3页不算缺页),并画图示意。

2、假设某程序的页面访问序列为1、2、3、4、5、2、3、4、5、1、2、3、4 、5且开始执行时主存中没有页面,则在分配给该程序的物理块数是3且采用LRU方式时,缺页次数是 ( ) 在分配给该程序的物理块数为4且采用LRU方式时,缺页次数是( ) 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pace_03

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值