3.4.4   第二次机会页面置换算法

FIFO算法可能会把经常使用的页面置换出去,为了避免这一问题,对该算法做一个简单的修改:检查最老页面的R位。如果R位是0,那么这个页面既老又没有被使用,可以立刻置换掉;如果是1,就将R位清0,并把该页面放到链表的尾端,修改它的装入时间使它就像刚装入的一样,然后继续搜索。

这一算法称为第二次机会(second chance)算法,如图3-15所示。在图3-15a中我们看到页面A到页面H按照进入内存的时间顺序保存在链表中。

假设在时间20发生了一次缺页中断,这时最老的页面是A,它是在时刻0到达的。如果A的R位是0,则将它淘汰出内存,或者把它写回磁盘(如果它已被修改过),或者只是简单地放弃(如果它是“干净”的);另一方面,如果其R位已经设置了,则将A放到链表的尾部并且重新设置“装入时间”为当前时刻(20),然后清除R位。然后从B页面开始继续搜索合适的页面。

第二次机会算法就是寻找一个最近的时钟间隔以来没有被访问过的页面。如果所有的页面都被访问过了,该算法就简化为纯粹的FIFO算法。特别地,想象一下,假设图3-15a中所有的页面的R位都被设置了,操作系统将会一个接一个地把每个页面都移动到链表的尾部并清除被移动的页面的R位。***算法又将回到页面A,此时它的R位已经被清除了,因此A页面将被淘汰,所以这个算法总是可以结束的。

【责任编辑:董书 TEL:(010)68476606】

点赞 0

linux页面置换的存储,3.4.4 第二次机会页面置换算法相关推荐

  1. html刷新页面信息消失,存储在localstorage中的变量在页面刷新时消失

    这是一个网页,您可以从三个单选按钮中选择背景图片.我想将所选的一个保存在本地存储中,因此当页面刷新时,最后一个选定的背景图像将被刷新.情况并非如此,我不明白为什么,是吗?在此先感谢:)存储在local ...

  2. 页面置换算法(FIFO、第二次机会、LRU)

    页面置换算法 文章目录 页面置换算法 前言 一.最近未使用页面置换算法 二.先进先出页面置换算法 三.第二次机会页面置换算法 四.时钟页面置换算法 四.最近最少使用页面置换算法 四.最不常用算法 总结 ...

  3. 【操作系统】在一页式存储管理系统中,某作业页表如下。已知页面大小为 1024 字节,问逻辑地址1068,2566,5699 所对应的物理地址各是多少?如果需要置换一页,应该选择哪一页?置换后所对应的物

    在一页式存储管理系统中,某作业页表如下. 已知页面大小为 1024 字节,问逻辑地址1068,2566,5699 所对应的物理地址各是多少?如果需要置换一页,应该选择哪一页?置换后所对应的物理地址是多 ...

  4. Linux和PHP 开发参考消息 php博文+Linux镜像+http服务器+存储技术+框架+视频+好书+通信...

    说明:好东西在后面,Linux镜像基本涵盖全球主要下载点.[长期更新] 如果你有好的链接也可以告诉我. 世界很大,我们很小,学海无涯,书山有路! 他山之石,可以攻玉! 一.Linux链接 Linux ...

  5. Linux KVM迁移与存储

    Linux KVM迁移与存储 1.环境描述: 如图1所示的网络环境,存储挂接到了NFS服务器上,通过交换机共享给了两台服务器KVM1和KVM2,操作系统均为64位的RHEL6.5,均运行着KVM虚拟机 ...

  6. app 缓存html页面,HTML5本地存储VS App缓存离线网站浏览

    ylerjen.. 17 AppCache使用清单文件来定义应用程序应该存储哪些文件(您可以缓存文件和资源,如HTML页面,JS脚本,CSS样式,图像......) LocalStorage将存储数据 ...

  7. linux iscsi软件,Redhat Linux 配置 iSCSI 连接存储

    一.安装iSCSI软件包(系统盘自带) 1.查看是否安装iscsi包 # rpm -qa | grep iscsi -bash:  grep iscsi: command not found -bas ...

  8. minio存储类型 归档管理页面_软件定义存储,看这一篇就够了

    minio存储类型 归档管理页面_软件定义存储,看这一篇就够了_婷婷与li的博客-CSDN博客 请看链接 文章来源于TaoCloud ,作者刘爱贵 1.SDS科普 SDS(Software Defin ...

  9. Linux服务器下挂载存储

    Linux服务器下挂载存储 挂载存储背景: 针对安徽省各地市硬件配置的不同,诸如oracle的软件安装在服务器上,数据则放在存储上.这样的话,启动服务器若没有挂载存储,应用启用失败.为了能够使服务器重 ...

最新文章

  1. linux 信号传递函数,Linux Shell之七 函数应用
  2. mtk android lcm调试
  3. python编程django遇到问题Passing a 3-tuple to include() is not supported.解决方案
  4. 每秒处理10万订单乐视集团支付架构--转
  5. Eclipse打包出错——提示GC overhead limit exceeded
  6. dubbo 自定义路由_Dubbo分层架构概述
  7. android 实现自定义卫星菜单
  8. OpenCV Sobel和Scharr (索贝尔和夏尔滤波器检测边缘)
  9. 帝国cms模板中php,帝国cms模板中使用PHP生成随机字符的方法
  10. 25行代码实现定时自动发送微信消息!
  11. 如何用淘宝客为淘宝店铺引流
  12. thinkPad电脑无人操作时休眠设置
  13. Tesla_T4加速卡详细参数
  14. 使用小米手机进行真机测试
  15. python实现录屏录音小工具
  16. SoFiA2用户手册自翻译
  17. bootstrap进度条媒体对象和Well组件
  18. 基于springboot+mybatis+jsp日用品商城管理系统
  19. 服务器后端开发系列——《实战Nginx高性能Web服务器》
  20. CatBoost论文笔记

热门文章

  1. c++ socket框架
  2. unknown builtin op: aten::Tensor
  3. caffe 报错 Check failed: error == cudaSuccess (77 vs. 0) an illegal memory access was encounteredcaffe
  4. opencv获取摄像头帧率分辨率
  5. 青龙羊毛——可推(搬运)
  6. Cissp-【第1章 安全和风险管理】-2020-12-03(1页-32页)
  7. 一.MongoDB简介
  8. 服务器 kvm 进入系统,服务器CAT5 KVM切换器系统
  9. recyclerview 滚动冲突_如何处理手势冲突 | 手势导航连载 (三)
  10. webview加载html跳转,WebView加载网页(二)