页面置换算法练习题

例:在一个请求分页存储系统中,一个进程的页面走向为4,3,2,1,4,3,5,3,2,1,设分配给该进程的内存块数M=4,采用FIFO和LRU页面置换算法(每调进一个新页认为发生一次缺页中断)。计算缺页次数和缺页率(写出计算过程)。

下面简单的把计算方法解释一下:

FIFO(先进先出置换算法)

首先要根据页面走向和内存块数画出表格,行数为页面走向的数量,列数为内存块数的数量(本题中为10行4列的表格)

依次填入一个数据,所以可以填入四次,到第五个页面走向就要进行判断,也就是4,我们看到,4已经存在,则将列表空置,继续进行下一个判断,下一个为3,依旧在列表中存在,仍然置空,来到下一个数,5.我们看到5没有,根据先进先出算法,需要将第一次进入的数进行置换,也就是把4换成5,并填入到表格中,然后下面依次是3,2,1,的判断,皆存在在表格中。所以都置空。(这里补充一下,如果下次再遇到不存在的数,如6,则将第二次进入的3进行置换,也就是把3置换成6填入,以此类推)

然后进行缺页次数和缺页率的计算。

缺页次数=列总数-空白列               缺页率=缺页次数/总列数

 

LRU(最近最久未使用算法)

由于算法的不同,采用置换的方式也会不一样。这里我们引入下标来计时(实际做题中不可以写,这里写出是便于大家理解)。

我们首先填入4,下标为0,也就是在该列表中的存在时间,随着填入的数依次增大。

然后填入3,下标为0,我们这时就要把4的下标变为1

然后填入2,下标为0,此时4的下标为2,      3的下标为1

然后填入1,下标为0,此时4的下标为3,    3的下标为2,     2的下标为1

第五个数4,在该列表中存在,这时需要置空,并对4的下标进行更新,变为0,其它的继续下标加1(也就是4(0),3(3),2(2),1(1))

第六个数3,在该列表中存在,这时需要置空,并对3的下标进行更新,变为0,其它的继续下标加1(也就是4(1),3(0),2(3),1(2))

第七个数5,不存在该列表,这时需要将下标最大的进行置换,也就是2的下标最大,将2置换成5,此时为(4(2),3(1),5(0),1(3))

第八个数3,在该列表中存在,这时需要置空,并对3的下标进行更新,变为0,其它的继续下标加1(也就是4(3),3(0),5(1),1(4))

第九个数2,不存在该列表,这时需要将下标最大的进行置换,也就是1的下标最大,将1置换成2,其它的继续下标加1,(也就是4(4),3(1),5(2),2(0))

第十个数1,不存在该列表,这时需要将下标最大的进行置换,也就是4的下标最大,将4置换成1,其它的继续下标加1,(也就是1(0),3(2),5(3),2(1))

然后进行缺页次数和缺页率的计算。

缺页次数=列总数-空白列               缺页率=缺页次数/总列数

 

最后再补充一下OPT(最佳页面置换算法)

先说一下最佳页面置换算法的做题思路:就是当遇到不存在列表中的页面走向数字时,需要进行判断需要替换的数字,这里的替换是根据列表中的数字中最远的那个,就是后面的一串数中最晚出现的那个,如果出现有个数在后面没有出现过就选这个没出现的数,不会出现两个不存在的数,给的数都是比较有规律的。

回到该题,由于给的数字较少,当遇到第7个数字5的时候,需要进行判断,此时页面中的是4,3,2,1.而后面的数字依次是3,2,1.我们可以看到4,没有存在,所以直接将4替换,如果顺序是4,3,2,。那么替换的就是1了,同理,怎样变数都是这样判断的。

所以这里的数据和FIFO的数据是一样,但是原理不一样。大家要特备注意,注意替换的思路!!!

4444  5   
 333  3   
  22  2   
   1  1   

数据既然一样,那么缺页次数和缺页率也是一样的,主要是题型大家这种算法的思路!

  • 17
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
好的,这里有一些操作系统页面置换算法的习题。 1. 有一个主存大小为4KB的计算机系统,分配给一个作业的物理块数为2,该作业的逻辑地址空间大小为64KB,每个页的大小为2KB。请问该系统的页表大小是多少? 答案:由于每个页的大小为2KB,因此逻辑地址空间大小为64KB,则该作业的页数为64KB/2KB = 32页。由于系统只分配了2个物理块,因此只能将2个页放入主存中。因此,该作业的页表大小为32 * 2 = 64B。 2. 在一个主存大小为8KB的计算机系统中,有一个作业需要访问的逻辑页号为1、2、3、4、5、6、7、8、9、10,分配给该作业的物理块数为3。采用FIFO页面置换算法,当作业访问逻辑页号为1、2、3、4、5、6、7、8、9、10时,发生的页面置换情况是什么? 答案:初始状态下,物理块中没有页面,因此作业首先访问逻辑页号为1,将页面1装入物理块1;然后作业访问逻辑页号为2,将页面2装入物理块2;接着作业访问逻辑页号为3,将页面3装入物理块3;此时,物理块中已经没有空闲的块,因此需要进行页面置换,采用FIFO算法,因此置换出现在物理块1中的页面1,将新访问的页面4放入物理块1;接下来依次顺序访问页面5、6、7、8、9、10,当访问页面5时,会发现物理块中已经没有页面2了,因此需要将页面2置换出去,以此类推,最终的页面置换情况为:1→2→3→4→5→2→6→3→7→4→8→5→9→2→10。 3. 在一个主存大小为16KB的计算机系统中,有一个作业需要访问的逻辑页号为1、2、3、4、5、6、7、8、9、10,分配给该作业的物理块数为4。采用LRU页面置换算法,当作业访问逻辑页号为1、2、3、4、5、6、7、8、9、10时,发生的页面置换情况是什么? 答案:初始状态下,物理块中没有页面,因此作业首先访问逻辑页号为1,将页面1装入物理块1;然后作业访问逻辑页号为2,将页面2装入物理块2;接着作业访问逻辑页号为3,将页面3装入物理块3;此时,物理块中已经没有空闲的块,因此需要进行页面置换,采用LRU算法,因此需要将最近最少使用的页面置换出去,根据访问情况,最近最少使用的页面页面1,因此置换出现在物理块1中的页面1,将新访问的页面4放入物理块1;接下来,访问逻辑页号为5时,发现页面5不在物理块中,因此需要将最近最少使用的页面2置换出去,以此类推,最终的页面置换情况为:1→2→3→1→4→5→2→6→3→7→1→8→4→9→2→10。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

mez_Blog

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

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

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

打赏作者

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

抵扣说明:

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

余额充值