操作系统之哲学原理11----页面更换算法

问题:需要将一个页面读入物理内存时,如果物理内存已满,如何挑选某个已经使用过的页面进行替换。

解决页面来回更换的问题。

页面更换目标:

  • 降低随后发生缺页中断的次数。
  • 选择的页面随后相当长时间内应该不会被访问。
  • 优先选择没有被修改的页面,不会写回磁盘

分为公平算法、非公平算法两类。

公平算法:

  • 对所有页面一视同仁。
  • 随机算法:随机选择一个换出。
  • 先来先出算法:更换最早进入内存的页面。
  • 第二次机会算法:
    • 改进先来先出算法,除了考虑先进入内存,还要考虑最近是否被访问过。
    • 从最先进入内存的页面开始找,如果被访问过,则访问位清0,然后修改进入内存的时间为当前时间,给予第二次机会。
  • 时钟算法:
    • 挨个页面遍历
    • 如果下一个页面没有被访问过,使用该页面。
    • 如果下一个页面被访问过,则清除访问标志,遍历下一个。

公平并不好,因该考虑页面的特性,选择随后最长时间不会被访问的页面。

非公平算法:

  • 最优更换:选择随后最长时间不会被访问的页面。这是个理论标杆。
  • NRU(最近未使用):基于程序访问内存的空间局限性,选择一个最近一段时间没有被访问过的页面。
  • LRU(最近最少使用):不止记录最近一段时间页面是否被访问,还要记录页面被访问的次数。选择使用频率最低的。这里的最近一段时间,就是定期清理访问标志的时间,如果不清理访问标志,访问标识将没有意义。
  • 工作集算法:为页面增加一个信息,记录该页面最后一次被访问的时间。如果一个页面的最后访问时间与当前时间差T,则替换。

页面替换策略:

  • 全局策略:替换算法应用于物理内存里面的所有页面。
  • 局部策略:替换算法应用于进程的所有页面。

———————————————————————————————————————————

欢迎关注我的微博:大雄_RE。专注软件逆向,分享最新的好文章、好工具,追踪行业大佬的研究成果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值