码迷,mamicode.com
首页 > 编程语言 > 详细

页面置换算法-操作系统

时间:2018-04-08 13:13:54      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:pos   程序   引用   规律   class   一段   原理   页面   log   

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

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

 

页面置换算法-操作系统

标签:pos   程序   引用   规律   class   一段   原理   页面   log   

原文地址:https://www.cnblogs.com/SUHONG/p/8744159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!