常见页面置换算法

页面置换算法(Page Replacement Algorithm)是虚拟内存管理中决定当物理内存已满时,应该淘汰哪一页的策略。它的目标是尽量减少缺页中断(Page Fault)的次数。

下面是常见的页面置换算法。

FIFO(First In First Out,先进先出)

淘汰最早进入内存的页面(就像排队先到先出),用队列记录页面进入的顺序。

实现简单;但可能出现 Belady 异常(增加内存页数,缺页次数反而增加)。

LRU(Least Recently Used,最近最少使用)

淘汰最长时间没有被访问的页面,可用栈、链表或时间戳记录页面的访问时间。

性能较好,接近最优算法;但实现复杂,维护访问记录有开销。

OPT(Optimal,最佳置换算法)

淘汰未来最长时间不会被访问的页面。

缺页次数最少(理论最优);但需要提前直到页面访问序列,实际系统中无法直接实现,只能用于理论分析。

Clock(时钟算法)

LRU(最近最少使用算法)的近似实现,用一个环形结构让查找和淘汰的过程更快。

物理页框被组织成一个环形链表(就像时钟的刻度);每个页框都有一个访问位,来记录该页最近是否被访问,还有一个指针(就像时钟的秒针),指向当前候选淘汰的页面。访问页面时,操作系统会将该页面的访问位置为 1 (表示最近访问过)。需要淘汰页面时,检查指针指向的页面,如果访问位是 0 ,说明最近没被访问过,淘汰该页;如果访问位为 1,说明最近访问过页面,把访问位置为 0,并将指针移动到下一个页面,继续检查。指针一直循环往前走(像秒针一样),直到找到一个访问位为 0 的页面进行置换。

比 LRU 实现更高效,不需要精确记录访问时间;扫描和置换过程简单;内存开销小。但不如真正的 LRU 精确,如果所有页面访问位都被频繁置 1,淘汰时可能需要扫描很多次。

LFU(Least Frequently Used,最少使用次数)

淘汰访问次数最少的页面。

对经常访问的页面有保护作用,但可能会保留历史上访问多但最近不访问的页面,导致性能下降。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值