页面置换算法-操作系统

Posted suhong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了页面置换算法-操作系统相关的知识,希望对你有一定的参考价值。

操作系统中的页面置换算法

1.最佳置换算法(OPT)

这是理想算法,不可能实现的。

该算法是指,其所选择的淘汰页面,将是以后不再使用,或者未来最长时间内不再被访问的页面。这样来保证最低的缺页率。

例子: 假定系统为某进程分配了三个物理块,并考虑有以下的页面号引用串:

          7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1

(1)进程运行时,先将7,0,1 三个页面装入内存。

(2)当进程要访问页面2 时,将会产生缺页中断。此时OS根据最佳置换算法,将选择页面7 予以淘汰。这是因为页面0 将作为第5 个被访问的页面,页面1 是第14 个被访问的页面,而页面7 则要在第18 次页面访问时才需调入。

(3)下次访问页面0时,因它已在内存而不必产生缺页中断。

(4)当进程访问页面3时,又将引起页面1 被淘汰;因为,它在现有的1,2,0 三个页面中,将是以后最晚才被访问的。

依次类推,按照未来访问的结果来淘汰选择当前页面……

下图所示出了采用最佳置换算法时的置换图。由图可看出,采用最佳置换算法发生了6 次页面置换。

技术分享图片

 

2.先进先出置换算法(FIFO)

置换最先调入内存的页面,即置换在内存中驻留时间最久的页面。

按照进入内存的先后次序排列成队列,从队尾进入,从队首删除。

但是该算法会淘汰经常访问的页面,不适应进程实际运行的规律,目前已经很少使用。

例子: 假定系统为某进程分配了三个物理块,并考虑有以下的页面号引用串:

          7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1

(1)将 7 0 1 放到内存

(2)7淘汰,变成 0 1 2

(3)0在内存中,再次访问,变成最新的,所有为 1 2 0

(4)3进来,变成 2 0 3

(5)依次类推……

 

3.最近最久未使用算法(LRU)

是对最优置换算法的近似,以过去推未来。

根据程序的局部性原理,如果最近一段时间内某些页面被频繁访问,那么在将来还可能被频繁访问。反之,未被访问的将来也不会被访问

例子: 假定系统为某进程分配了三个物理块,并考虑有以下的页面号引用串:

          7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1

7 0 1    0 1 2  1 2 0  2 0 3  2 3 0  3 0 4  0 4 2  4 2 3  2 3 0  2 0 3  0 3 2  3 2 1     3 1 2   1 2 0     2 0 1     

0 1 7    1 7 0    7 0 1

 

以上是关于页面置换算法-操作系统的主要内容,如果未能解决你的问题,请参考以下文章

操作系统-内存页面分配策略和页面置换算法

操作系统概念 页面置换算法:分别使用FIFOOPTLRU三种置换算法来模拟页面置换的过程。

操作系统概念 页面置换算法:分别使用FIFOOPTLRU三种置换算法来模拟页面置换的过程。

(王道408考研操作系统)第三章内存管理-第二节2:页面置换算法2

(王道408考研操作系统)第三章内存管理-第二节3:页面置换算法2

操作系统 页面置换算法LRU和FIFO