LRU和FIFO算法计算“缺页中断O(∩_∩)O啊

LRU和FIFO算法计算“缺页中断O(∩_∩)O啊
2010-04-07 00:33

今天做完了软件设计师的操作系统部分,,,用了几个钟( ⊙ o ⊙ )啊!,有个问题还没有解决...   虚拟存储管理系统,置换算法产生的缺页次数...就是这题 啊,不过还是不很明白...

用LRU和FIFO算法计算“缺页中断O(∩_∩)O啊~(+﹏+)~狂晕

标签:分类:我爱学习

最今为了考软件设计师,天天苦读奋斗,突然间在计算缺页中断时傻了眼,后来从其他的地方终于了解到了,其实知道了觉得很简单。纳闷到时为什么会傻眼呢,还自己在那考虑了很多时间。

计算用LRU和FIFO算法计算“缺页中断”。

在一个虚拟存储管理系统中,假如系统分配给一个作业的内存物理块数是3,并且此作业的页面使用顺序为2,3,2,1,5,2,4,5,3,2,5,2,若采用FIFO和LRU置换算法,其产生的缺页次数分别为 (5) 和 (6) 。
(5) A.6 6) A.6
B.7 B.7
C.8 C.8
D.9 D.9
【解析】本题主要考查虚拟内存的页面调度算法。题目中当采用FIFO时,其页面调度过程如下:
2 3 2 1 5 2 4 5 3 2 5 2
――――――――――――――
2 2 2 2 5 5 5 5 3 3 3 3
3 3 3 3 2 2 2 2 2 5 5
1 1 1 4 4 4 4 4 2
可知缺页次数为9。同样若采用LRU算法,可计算其缺页次数为7。

更详细的解答:作业在3块内存空间中的缺页中断次数。FIFO置换算法有这样一个奇怪现象:内存空间块数越多,缺页中断率可能相反的越高(缺页中断次数越高)。
问题是2块和4块内存的情况。现在来看下4块的情况:
0 1 2 3 2 1 3 2 5 2 3 6 2 1 4 2
【解答】
刚开始内存并没有这个作业,所以发生缺页中断一次。作业的0号页进入内存。(1次缺页中断)
而页1又不在内存,又发生缺页中断一次。作业页1进入内存。(2次缺页中断)

页2不在内存,发生缺页中断。页2进入内存。 (3次缺页中断)
页3不在内存,发生缺页中断。页3进入内存。 (4次缺页中断)
接下来调入页2,页1,页3,页2。由于都在内存中,并不发生缺页中断。
页5不在内存,发生缺页中断。页5进入内存,页5置换页0。 (5次缺页中断)
接下来调入页2,页3。由于都在内存中,并不发生缺页中断。
页6不在内存,发生缺页中断。页6进入内存。页6置换页1。 (6次缺页中断)
页2在内存,不发生缺页中断。
页1不在内存(在发生第6次缺页中断时被置换了),发生缺页中断。
页1进入内存,页2被置换。 (7次缺页中断)
页4置换页3,页4进入内存。 (8次缺页中断)
现在调入页2,但页2在发生第7次缺页中断时被置换掉了。
现在页2进入内存,其置换页5。(因为这个时候是页5最先进入内存。)(9次缺页中断)
总结:行数3行代表内存物理块数是3然后从左到右依次看下去,每一列代表当前内存中的作业情况,缺页就表示当前内存中没有要从外面调入作业就叫缺页

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
FIFO(First In First Out)和LRU(Least Recently Used)是两种常用的页面置换算法。它们的主要目的是在内存中维护一定数量的页面,当页面不足时,选择一些页面进行置换,以便为新的页面腾出空间。 FIFO算法会按照页面调入内存的顺序进行置换。当页面不足时,会选择最先调入内存的页面进行置换。这种算法简单易实现,但是会导致一些长时间未被使用的页面一直存在于内存中,浪费了内存资源。 LRU算法则会根据页面的使用情况进行置换。当页面不足时,会选择最近最少使用的页面进行置换。这种算法可以有效地利用内存资源,但是实现起来比FIFO算法更为复杂。 在缺页中断次数方面,LRU算法通常可以比FIFO算法表现更好。因为LRU算法可以选择最近最少使用的页面进行置换,而这些页面通常是长时间未被使用的页面,置换它们很可能不会影响程序的性能。而FIFO算法则很可能会选择一些常用的页面进行置换,导致程序频繁地发生缺页中断,影响程序的性能。 在缺页率方面,两种算法的表现很大程度上取决于具体的应用场景。在某些情况下,FIFO算法可能表现更好,因为它可以保留较新的页面,从而减少缺页率。而在另一些情况下,LRU算法可能表现更好,因为它可以选择最近最少使用的页面进行置换,从而减少无用页面的存在,降低缺页率。 总之,FIFOLRU是两种常用的页面置换算法,它们在缺页中断次数和缺页率方面都有其优劣之处,使用时需要根据具体的应用场景进行选择。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值