1.最佳置换算法
在产生缺页中断时,把最近一段时间不再使用的或者使用次数较少的页面换出
2.先进先出算法(FIFO)
first in first out,简称FIFO
在产生缺页中断时,把内存中滞留时间最长的页面置换出去
3.最近最久未使用算法(LRU)
least recently used,简称LRU
在产生缺页中断时,在内存中选择最久没有使用的页面,将其置换出去
4.时钟页面置换算法(Clock)
Clock算法会用到页表项中的访问位,当页面被装入内存时,会将访问位初始化为0,如果页面被访问(无论读写),会将访问位置为1;
内存中的各个页面会被组织成一个环形链表(类似钟表面),让指针指向最先进入内存的页面;
当发生缺页中断时,查看指针指向的页面访问位,如果访问位为0,将该页面置换出,让指针移到下一个位置;如果访问位为1,将访问位置为0,让指针移动到下一个位置,直到找到被淘汰的页面。
5.二次机会法
二次机会法是clock算法的修改版本,使用访问位和脏读位来指导替换,访问位表示页面一段时间内是否被访问过,脏读位表示页面一段时间内是否执行过写操作。
核心思想如下:
当页面被装入内存时,会将访问位初始化为0,脏读位初始化为0,如果页面被访问(无论读写),会将访问位置为1;如果页面执行写操作,会将脏读位置为1;
内存中的各个页面会被组织成一个环形链表(类似钟表面),让指针指向最先进入内存的页面;
当发生缺页中断时,查看指针指向页面的访问位和脏读位,
如果访问位和脏读位都为0,将该页面置换出,让指针移到下一个位置;如果访问位为1、脏读位为0,将访问位置为0,让指针移动到下一个位置;
如果访问位为0、脏读位为1,将脏读位置为0,让指针移动到下一个位置;
如果访问位和脏读位都为1,将访问位置为0,让指针移动到下一个位置;
就这样指针向后移动,直到找到被淘汰的页面。
6.最不常用算法(LFU)
least frequently used,简称LFU
当发生缺页中断时,选择内存中页面访问次数最少的将其置换出