页面置换算法
页面置换算法
一、原因
当进程访问某个虚拟内存的时候,先去页表中查找,如果对应的数据不再物理内存上,就会发生缺页异常,操作系统会立即阻塞该进程,然后将硬盘里对应的页置换进内存,如果内存满了,就需要使用页面置换算法。
二、各种内存置换算法
一、最佳置换算法:
一种只能在理论中存在的算法,无法实现,将当前页面中未来最久不会使用的页面置换出去。
二、先进先出页面置换算法(FIFO):
每次淘汰最早调入的页面。
三、最近最久未使用算法(LRU):
算法给每个页面一个字段,记录这个页面自从上次被访问之后经历的时间,当需要淘汰一个页面时,选择现有页面中t值最大的,即最近最久没有使用的。
四、最近未使用NRU:
页面设置一个访问位置,将页面链接为一个环形队列,页面被访问的时候设置为1,置换的时候用指针循环,如果当前为0则将其置换出去,否则将其设置为0然后向下循环找。
五、NRU+算法
设置一个修改位,如果修改了就设置为1,循环的时候优先替换访问位置和修改位置都为0的页面。
六、最少使用算法LFU
设置寄存器记录每个页面被访问的次数,每次置换的时候置换访问次数最少的。

浙公网安备 33010602011771号