当前位置:   article > 正文

先进先出(FIFO)置换算法讲解_操作系统 内存置换先进先出

操作系统 内存置换先进先出

基本思想

先进先出(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异常现象。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/687554
推荐阅读
相关标签
  

闽ICP备14008679号