分页虚拟存储管理——页面置换算法例题

【例题1】在一个分页虚拟存储管理系统中,一个程序的页面走向为4,3,2,1,4,3,5,4,3,2,1,5。利用最久最近未使用算法
(1) 当分配给程序3个存储块时,求出程序的页面中断的次数
(2) 当分配给程序4个存储块时,求出程序的页面中断的次数
注:在大部分情况下虽然题目没有指明,但基本默认缺页中断的判断规则是:每调进一个新页,产生一次页面中断。
解(1):
分配给该作业的物理块数M=3时,页面置换情况如下表所示。
在这里插入图片描述
综上表可知:缺页中断的次数为10
详细的分析请参见文末。
解(2):
分配给该作业的物理块数M=3时,页面置换情况如下表所示。
在这里插入图片描述
综上表可知:缺页中断的次数为8
详细的分析请参见文末。
【例题2】在一个分页虚拟存储管理系统中,一个程序的页面走向为2,4,1,2,5,0,6,3,0,4,2,3,设分配给该程序的存储块数M=3,每调进一个新页就发生一次缺页中断。当分别采用最佳置换算法、先进先出置换算法和最近最久未使用算法时,求缺页的次数和缺页中断率。

解:(1)分配给该作业的物理块数M=3时,利用先进先出置换算法得出的页面置换情况如下表所示。

【例题1】

第一小问详解

当分配给程序3个存储块时,页面置换情况如下表所示。
为了好看,先写一个空表
在这里插入图片描述
访问顺序就是按照页面走向来排的,
4进来时,内存尚为空,4进来后占据1页。由于在4进来之前内存块中事先没有4的存在,所以此时4对于内存而言是一个新页,按照缺页中断的原则每调进一个新页就发生一次缺页中断,那么缺页数相应的加1,此时缺页数=1。
在这里插入图片描述
3进来时,内存已经被4占据了1块,此时内存剩余容量为2。当3进来后占据1页。由于在3进来之前内存中事先没有3的存在,所以此时3对于内存而言是一个新页,按照题目缺页中断的原则每调进一个新页就发生一次缺页中断,那么缺页数相应的加1,此时缺页数=2。
在这里插入图片描述
2进来时,内存已经被43占据了2块,此时内存剩余容量为1。当2进来后占据1页。由于在2进来之前内存中事先没有2的存在,所以此时2对于内存而言是一个新页,按照题目缺页中断的原则每调进一个新页就发生一次缺页中断,那么缺页数相应的加1,此时缺页数=3。
在这里插入图片描述
1进来时,内存已经被432占据了3块,此时内存无剩余量,且1是一个新页,1想要进来就必须替换掉432中的一个,替换的规则就是看1左边的访问过了的顺序432,找到离1最近的要替换的数字432,那么究竟要替换哪一个数呢?答案是4最近最久未使用置换算法的原理是:淘汰在最近一段时间内最久没有使用的页,(可以给个度量来看,如:上一秒刚访问了2,上上一秒访问了3,上上上一秒访问了4)所以最近最久未使用的就是4,所以就让1替换掉4,与此同时缺页数加1,此时缺页数=4。
在这里插入图片描述
4进来时,内存已经被132占据了3块,此时内存无剩余量,且4是一个新页,4想要进来就必须替换掉132中的一个,替换的规则就是看4左边的访问过了的顺序4321,找到离4最近的要替换的数字132,那么究竟要替换哪一个数呢?答案是3最近最久未使用置换算法的原理是:淘汰在最近一段时间内最久没有使用的页,(可以给个度量来看,如:上一秒刚访问了1,上上一秒访问了2,上上上一秒访问了3)所以最近最久未使用的就是3,所以就让4替换掉3,与此同时缺页数加1,此时缺页数=5。
在这里插入图片描述
3进来时,内存已经被142占据了3块,此时内存无剩余量,且3是一个新页,3想要进来就必须替换掉142中的一个,替换的规则就是看3左边的访问过了的顺序43214,找到离3最近的要替换的数字142,那么究竟要替换哪一个数呢?答案是2最近最久未使用置换算法的原理是:淘汰在最近一段时间内最久没有使用的页,(可以给个度量来看,如:上一秒刚访问了4,上上一秒访问了1,上上上一秒访问了2)所以最近最久未使用的就是2,所以就让3替换掉2,与此同时缺页数加1,此时缺页数=6。
在这里插入图片描述
5进来时,内存已经被143占据了3块,此时内存无剩余量,且5是一个新页,5想要进来就必须替换掉143中的一个,替换的规则就是看5左边的访问过了的顺序432143,找到离5最近的要替换的数字143,那么究竟要替换哪一个数呢?答案是1最近最久未使用置换算法的原理是:淘汰在最近一段时间内最久没有使用的页,(可以给个度量来看,如:上一秒刚访问了3,上上一秒访问了4,上上上一秒访问了1)所以最近最久未使用的就是1,所以就让5替换掉1,与此同时缺页数加1,此时缺页数=7。
在这里插入图片描述
4进来时,内存已经被543占据了3块,此时内存剩余量为0。当4进来后,由于在4进来之前内存中事先有4的存在。所以此时的4对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
3进来时,内存已经被543占据了3块,此时内存剩余量为0。当3进来后,由于在3进来之前内存中事先有3的存在。所以此时的3对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
2进来时,内存已经被543占据了3块,此时内存无剩余量,且2是一个新页,2想要进来就必须替换掉543中的一个,替换的规则就是看2左边的访问过了的顺序432143543,找到离2最近的要替换的数字543,那么究竟要替换哪一个数呢?答案是5最近最久未使用置换算法的原理是:淘汰在最近一段时间内最久没有使用的页,(可以给个度量来看,如:上一秒刚访问了3,上上一秒访问了4,上上上一秒访问了5)所以最近最久未使用的就是5,所以就让2替换掉5,与此同时缺页数加1,此时缺页数=8。
在这里插入图片描述
1进来时,内存已经被243占据了3块,此时内存无剩余量,且1是一个新页,1想要进来就必须替换掉243中的一个,替换的规则就是看1左边的访问过了的顺序4321435432,找到离1最近的要替换的数字243,那么究竟要替换哪一个数呢?答案是4最近最久未使用置换算法的原理是:淘汰在最近一段时间内最久没有使用的页,(可以给个度量来看,如:上一秒刚访问了2,上上一秒访问了3,上上上一秒访问了4)所以最近最久未使用的就是4,所以就让1替换掉4,与此同时缺页数加1,此时缺页数=9。
在这里插入图片描述
5进来时,内存已经被213占据了3块,此时内存无剩余量,且5是一个新页,5想要进来就必须替换掉213中的一个,替换的规则就是看5左边的访问过了的顺序43214354321,找到离5最近的要替换的数字213,那么究竟要替换哪一个数呢?答案是3最近最久未使用置换算法的原理是:淘汰在最近一段时间内最久没有使用的页,(可以给个度量来看,如:上一秒刚访问了1,上上一秒访问了2,上上上一秒访问了3)所以最近最久未使用的就是3,所以就让5替换掉3,与此同时缺页数加1,此时缺页数=10。
在这里插入图片描述
综上:当分配给程序3个存储块时,程序的页面中断的次数为10

第二小问详解

当分配给程序4个存储块时,页面置换情况如下表所示。
为了好看,先写一个空表
在这里插入图片描述
访问顺序就是按照页面走向来排的,
4进来时,内存尚为空,4进来后占据1页。由于在4进来之前内存块中事先没有4的存在,所以此时4对于内存而言是一个新页,按照缺页中断的原则每调进一个新页就发生一次缺页中断,那么缺页数相应的加1,此时缺页数=1。
在这里插入图片描述
3进来时,内存已经被4占据了1块,此时内存剩余容量为2。当3进来后占据1页。由于在3进来之前内存中事先没有3的存在,所以此时3对于内存而言是一个新页,按照题目缺页中断的原则每调进一个新页就发生一次缺页中断,那么缺页数相应的加1,此时缺页数=2。
在这里插入图片描述
2进来时,内存已经被43占据了2块,此时内存剩余容量为1。当2进来后占据1页。由于在2进来之前内存中事先没有2的存在,所以此时2对于内存而言是一个新页,按照题目缺页中断的原则每调进一个新页就发生一次缺页中断,那么缺页数相应的加1,此时缺页数=3。
在这里插入图片描述
1进来时,内存已经被432占据了3块,此时内存剩余容量为1。当1进来后占据1页。由于在1进来之前内存中事先没有1的存在,所以此时1对于内存而言是一个新页,按照题目缺页中断的原则每调进一个新页就发生一次缺页中断,那么缺页数相应的加1,此时缺页数=4。
在这里插入图片描述
4进来时,内存已经被4321占据了4块,此时内存剩余量为0。当4进来后,由于在4进来之前内存中事先有4的存在。所以此时的4对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
3进来时,内存已经被4321占据了4块,此时内存剩余量为0。当3进来后,由于在3进来之前内存中事先有3的存在。所以此时的3对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
5进来时,内存已经被4321占据了4块,此时内存无剩余量,且5是一个新页,5想要进来就必须替换掉4321中的一个,替换的规则就是看5左边的访问过了的顺序432143找到离5最近的要替换的数字4321,那么究竟要替换哪一个数呢?答案是2最近最久未使用置换算法的原理是:淘汰在最近一段时间内最久没有使用的页,(可以给个度量来看,如:上一秒刚访问了3,上上一秒访问了4,上上上一秒访问了1,上上上上一秒访问了2)所以最近最久未使用的就是2,所以就让5替换掉2,与此同时缺页数加1,此时缺页数=5。
在这里插入图片描述

4进来时,内存已经被4351占据了4块,此时内存剩余量为0。当4进来后,由于在4进来之前内存中事先有4的存在。所以此时的4对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
3进来时,内存已经被4351占据了4块,此时内存剩余量为0。当3进来后,由于在3进来之前内存中事先有3的存在。所以此时的3对于内存而言不是一个新页。内存块无需被多占据1页,相应的缺页数也无需变化。
在这里插入图片描述
2进来时,内存已经被4351占据了4块,此时内存无剩余量,且2是一个新页,2想要进来就必须替换掉4351中的一个,替换的规则就是看2左边的访问过了的顺序432143543找到离2最近的要替换的数字4351,那么究竟要替换哪一个数呢?答案是1最近最久未使用置换算法的原理是:淘汰在最近一段时间内最久没有使用的页,(可以给个度量来看,如:上一秒刚访问了3,上上一秒访问了4,上上上一秒访问了5,上上上上上上一秒访问了1)所以最近最久未使用的就是1,所以就让2替换掉1,与此同时缺页数加1,此时缺页数=6。
在这里插入图片描述
1进来时,内存已经被4352占据了4块,此时内存无剩余量,且1是一个新页,1想要进来就必须替换掉4352中的一个,替换的规则就是看1左边的访问过了的顺序4321435432找到离1最近的要替换的数字4352,那么究竟要替换哪一个数呢?答案是5最近最久未使用置换算法的原理是:淘汰在最近一段时间内最久没有使用的页,(可以给个度量来看,如:上一秒刚访问了2,上上一秒访问了3,上上上一秒访问了4,上上上上一秒访问了5)所以最近最久未使用的就是5,所以就让1替换掉5,与此同时缺页数加1,此时缺页数=7。
在这里插入图片描述
5进来时,内存已经被4312占据了4块,此时内存无剩余量,且5是一个新页,5想要进来就必须替换掉4312中的一个,替换的规则就是看5左边的访问过了的顺序43214354321找到离5最近的要替换的数字4312,那么究竟要替换哪一个数呢?答案是4最近最久未使用置换算法的原理是:淘汰在最近一段时间内最久没有使用的页,(可以给个度量来看,如:上一秒刚访问了1,上上一秒访问了2,上上上一秒访问了3,上上上上一秒访问了4)所以最近最久未使用的就是4,所以就让5替换掉4,与此同时缺页数加1,此时缺页数=8。
在这里插入图片描述
综上:当分配给程序4个存储块时,程序的页面中断的次数为8

【例题2】

  • 24
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

立志Java工程师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值