赞
踩
先进先出(First In first Out,FIFO) 页面置换算法,每次置换最先调入内存的页面,即将内存中等待时间最长的页面进行置换。此算法的适用范围是顺序结构程序
这和我们现实生活中的排队方式很相似, 先进队伍的人会先买到票, 然后先从队伍中离开。如果使用FIFO算法作为页面置换算法, 缓存空间大小是三个页面时, 一次进入Page1, Page2, Page3。当Page4要进入缓存时, 操作系统将会把Page1清除出缓存, 将Page4加入至缓存中。如果再有Page5要进入缓存时, 操作系统会将Page2清除出缓存空间, 以此类推。
比如有下述页面走向:1, 2, 3, 4, 2, 1, 5, 6, 2, 1, 2, 3, 7, 6, 3, 2, 1, 2, 3, 6。当内存块数量分别为3时, 我们算一算使有此方法时产生的缺页次情况。 (注意, 所有内存块最初都是空的, 凡第一次用到的页面都产生一次缺页。)
当内存块数量分别为3时, FIFO算法的执行过程如下图所示。
打叉的表示发生了缺页, 共缺页16次。
已知页面走向为1、2、1、3、5、3、2、4、5、2、1、3、1、2、5当分配给该作业的物理块数分别为3时,试分别计算采用FIFO页面淘汰算法时缺页次数为多少,缺页率为多少?页面置换次数是多少? (写出计算步骤)
走向 | 1 | 2 | 1 | 3 | 5 | 3 | 2 | 4 | 5 | 2 | 1 | 3 | 1 | 2 | 5 |
块1 | 1 | 1 | 1 | 1 | 5 | 5 | 5 | 5 | 5 | 5 | 1 | 1 | 1 | 1 | 1 |
块2 | 2 | 2 | 2 | 2 | 2 | 2 | 4 | 4 | 4 | 4 | 3 | 3 | 3 | 3 | |
块3 | 3 | 3 | 3 | 3 | 3 | 3 | 2 | 2 | 2 | 2 | 2 | 5 | |||
缺页 | √ | √ | √ | √ | √ | √ | √ | √ | √ |
缺页次数=9 缺页率=9/15*100%=60% 页面置换次数:6
先进先出页面置换算法的优点是其实现起来比较简单,可以不需要硬件的支持, 因而不需要增加系统的成本。
没有考虑到缓存页面被使用的情况。如果一个页面被频繁访问, 我们应该将它保留在缓存中, 这样就能够提高程序的性能。但是使用FIFO算法, 很可能将一个被频繁访问的页面清除出缓存, 所以FIFO算法在实际的应用中是很少被使用到的, 但是这种思想是计算机系统中常常被采用的。
在大数情况下,先进先出页面置换算法缺页率比较低或会产生Belady异常现象。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。