梁娜

个人博客

欢迎来到我的个人站


第二次机会页面置换算法(Second Chance)SCR

第二次机会页面置换算法(Second Chance)SCR

SCR本身是FIFO的改进,本质是寻找一个在最近的时钟间隔内没有被访问的页面 。

工作方式的核心是:按照FIFO选择置换页面时,检查它的访问位。

工作过程如下:

访问位=0时,淘汰本页。

访问位=1时,给本页第二次机会,并选择下一个FIFO页面。

当一个页面得到第二次机会时,访问位清为0,它的到达时间置为当前时间,该页如果在此期间被访问过,则访问位置为1。这样,被给了第二次机会的页面将不会被淘汰。

整个过程简化一下,视作一个环形队列,用一个指针指示哪页是下面要淘汰的。

举个例子

页面请求序列为7,0,1,2,0,3,0,4,2,3,0,3,2,1,3,2 假设内存可以容纳4个页面,整个过程如下

1.初始状态为空,编号为7,0,1,2四个页面依次调入内存,访问位置为1

01

2.继续访问0号页面,页面已经存在,无需修改。

3.访问3号页面,页面不在内存中,按照FIFO原则依次选择置换页面同是检查访问位,7,0,1,2号页面访问位均为1,修改为0,修改完成后指针回到1号帧(7号页面),则将7号页面换出,3号页面换入1号帧,并将访问位修改为1,指针移动到2号帧,表示下一个要淘汰的页面时2号帧的0号页面。

02

4.继续访问0号页面,页面已经存在,访问位修改为1,指针移动至下一个访问位为0的页面,即指向下一个要淘汰的页面。

03

5.访问4号页面,页面不在内存中,此时指针指向1号页面,将1号页面换出,4号换入,并将访问位修改为1,指针移动到下一个要被淘汰的页面。

04

6.访问2号页面,页面存在,修改访问位为1,指针移动。

05

7.接下来继续按顺序访问3,0,3,2号页面,页面都已存在,无需调换,访问位置1。

8.访问1号页面,按照FIFO原则依次检查3,0,2,4号页面访问位,依次置为0,指针回到3号页面,则3号页面换出,1号换入,访问位置为1,此时指针移动到0号页面,表示下一次要淘汰的页面。

06

9.访问3号页面,不在内存中,将指针指向的0号页面调出,3号调入,置访问位为1,指针移动到4号页面,表示下一次要淘汰的页面。

07

10.访问2号页面,在内存中,访问位置为1。

08

总结:

09

缺页率=8/16

按照FIFO原则整个过程如下:

10

缺页率=9/16

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦