本文参考一点击
参考二点击
在一个请求分页面管理中,一个程序的页面走向为1、2、3、4、1、2、5、1、2、3、4、5。
当内存块数量为3时,试问使用
(1)FIFO页面置换算法
(2)LRU页面置换算法
(开始时没有装入页面)时的缺页中断次数是多少()
FIFO:
页 4 1 2 5 1 2 3 4 5
内存 423 413 412 512 no no 532 534 no
LRU:
页 4 1 2 5 1 2 3 4 5
内存 423 413 412 512 no no 312 342 345
(缺页发生 也就是需要进行交换,初始装入内存的三个页是不发生缺页的 所以从4开始)
上面是装入的页面 下面是装入后内存的状态 (no代表不缺页)
FIFO是先进先出,总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面进行淘汰。(此算法是基于内存块的顺序, 按访问的时间先后顺序链接成一个队列,并设置一个指针,该指针始终指向“最老“的页面。)
LRU 是更新最长未使用的页面,这个算法是根据页面值来交换的。
也就是新装入的页面值如果在内存块里面有,就会更新这个页面的某个标记状态(标记其多久未使用,其实就是个变量,很容易实现)
显然一直到5都是和FIFO算法是一样的,为什么呢,因为前几页都是缺页的,并没有改变标记变量,所以就先装入,则距今未使用时间最长,则先交换的原则啦
开始需要 1(5后面那个) 那么内存目前状态时 512, 1是在内存中的不发生缺页,所以更新标记变量(标明 1刚被使用过)。
然后需要 2 内存中依然存在,则更新2的 标记变量,现在内存中仍然是 512 ,但是标记变量已经变了, 2最新,1次之,5最久(最久未使用),所以下次交换就先换 5,内存变为 321 。现在 3最新,2次之,1最久,下次缺页就换1。
思路就是这样啦,由于我也是刚学,可能分析中也有错误,如果发现,请见谅。希望有帮助http://zhidao.baidu.com/link?url=T9qi3oc38yEsYUtDHztLSVq7F2EgSdzJ9gI-cgXkBc4MW6g8RTF88xLQM9Fq7D-r2JX0by2Xx6uLJL0xDjCO_q
在一个虚拟存储管理系统中,假如系统分配给一个作业的内存物理块数是3,并且此作业的页面使用顺序为2,3,2,1,5,2,4,5,3,2,5,2,若采用FIFO和LRU置换算法,其产生的缺页次数分别为( )和( ) 。
答案是这样的:
题目中当采用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。
关于这个建议你看下操作系统的相关知识.
以下给出我的算法:
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
---------------------
是否缺页:
* * * * * * * * *
(FIFO)=9次
LRU:
当前所需:
2 3 2 1 5 2 4 5 3 2 5 2
----------------------
当前内存:
2 2 3 3 2 1 5 2 4 5 3 3
3 2 2 1 5 2 4 5 3 2 5
1 5 2 4 5 3 2 5 2
---------------------
是否缺页:
* * * * * * *
(LRU)=7次