页面置换算法

页面置换算法

一、原因

当进程访问某个虚拟内存的时候,先去页表中查找,如果对应的数据不再物理内存上,就会发生缺页异常,操作系统会立即阻塞该进程,然后将硬盘里对应的页置换进内存,如果内存满了,就需要使用页面置换算法。

二、各种内存置换算法

一、最佳置换算法:

一种只能在理论中存在的算法,无法实现,将当前页面中未来最久不会使用的页面置换出去。

二、先进先出页面置换算法(FIFO):

每次淘汰最早调入的页面。

三、最近最久未使用算法(LRU):

算法给每个页面一个字段,记录这个页面自从上次被访问之后经历的时间,当需要淘汰一个页面时,选择现有页面中t值最大的,即最近最久没有使用的。

四、最近未使用NRU:

页面设置一个访问位置,将页面链接为一个环形队列,页面被访问的时候设置为1,置换的时候用指针循环,如果当前为0则将其置换出去,否则将其设置为0然后向下循环找。

五、NRU+算法

设置一个修改位,如果修改了就设置为1,循环的时候优先替换访问位置和修改位置都为0的页面。

六、最少使用算法LFU

设置寄存器记录每个页面被访问的次数,每次置换的时候置换访问次数最少的。

posted @ 2021-04-13 14:35  NodMouse  阅读(352)  评论(0)    收藏  举报