页面置换算法
题目:
在一个请求分页系统中,假定系统分配给一个作业的物理块数为 3,并且此作业的页面走向为 2、3、2、1、5、2、4、5、3、2、5、2。试用 FIFO和 LRU 两种算法分别计算出程序访问过程中所发生的缺页次数。
分析思路:
- 先进先出(FIFO)更新算法:
也称为最早出现的页面更新算法。该算法总是淘汰最先进入内存的页面,即选择在内存中停留时间最长的一页予以淘汰。如果同时有多个页面符合淘汰的条件,则任意选择一个予以淘汰即可。
技巧:谁先连成和题目所给物理块总数,谁先被置换掉
- 最近最久未使用(LRU)更新算法:
以“最近的过去”作为“不久的将来”的近似,选择最近一段时间内最久没有使用的页面淘汰。
它的实质是:当需要更新一页时,选择在最近一段时间内最久没有被使用的页面予以淘汰
技巧:在内存中没有的页面开始往前看,置换“最前面的“,但不是从一开始的,那样这个算法就没有意义了
缺页率=缺页次数/总页数
置换率=置换次数/总页数
置换次数=缺页次数-物理块数
注意:这两个率最后一定要写成%的形式,不可以写分数
先进先出(FIFO)更新算法:缺页次数9次,置换次数6次
缺页率=缺页次数/总页数=9/12=75%
置换率=置换次数/总页数=6/12=50%
最近最久未使用(LRU)更新算法:缺页次数7次,置换次数4次
缺页率=缺页次数/总页数=7/12=58.3%(约等于)
置换率=置换次数/总页数=4/12=33.3%(约等于)