戳蓝字「TopCoder」关注我们哦!
操作系统为什么需要页面更换呢,因为物理内存不够,不可能同时加载所需的所有数据页,因此只能加载正在或最近要使用的内存页。页面更换的目标是,尽量替换掉不再使用或者一段时间内不再使用的内存页,要不然会很容易触发缺页中断,该操作代价较大,涉及到从磁盘加载,因此页面更换可不是随便的事情。
为了达到降低随后发生缺页中断的次数或者概率,人们设计出了各种各样的页面替换算法,这些算法大致可分为公平算法和非公平算法。
公平算法:随机算法、FIFO算法、时钟算法。
非公平算法:NRU算法、LRU算法、工作集算法。
随机算法
这种就是简单的随机选择进行页替换,无需多言,简单粗暴。
FIFO算法
这种就是先来后到,可以使用链表记录页分配的先后顺序,淘汰时按照顺序淘汰即可,也是非常的简单粗暴。
时钟算法
内存使用中的页按照时钟的逻辑形状,淘汰页时按照时钟顺序检查,如果页未访问到(每个页对应一个访问标识,未访问到时设置为0),则直接替换;