zoukankan      html  css  js  c++  java
  • 内存管理

    1.Please compare NRU, NFU, WS, CLOCK  with LRU and write down the difference.
    答:
    ①最近未使用页面置换算法(NRU)算法

    找到最久没有使用的页面置换出去,页面被访问时设置R位,修改时设置M位,R位定期清0;

    把页面分四类

    0类:未被访问,未被修改的R=M=0

    1类:未被访问,被修改R=0,M=1

    2类:被访问,未被修改R=1,M=0

    3类:被访问,被修改R=1,M=1

    系统从类编号最小的非空类随机挑选一个置换

    ②最不常用算法NFU
    为每个页面维持一个初值0的计数器,每次时钟中断,由操作系统扫描所有页面,把计数器加上当前的R位更新,这样每个计数器的值大概反映了被访问的频繁程度。缺页中断时,置换计数器数值最小的页面

    ③时钟页面置换算法CLOCK
    当发生缺页中断时,算法首先检查表针指向的页面,如果它的R位是0就淘汰该页面,并把新的页面插入这个位置,然后把表针前移一个位置;如果R位是1就清除R位并把表针前移一个位置,重复这个过程直到找到了一个R位为0的页面为止。

    ④WS
    工作集页面置换算法
    定义一个工作集:在过去t秒内被访问的页面的集合。
    扫描所有页面,若R==1,把当前时间写入页表项的“上次使用时间“ ,以表示缺页中断发生时该页面正在被使用。若R==0,表示在当前时钟滴答中,该页面还没有被访问过,则它就可以作为候选者被置换。且生存时间(当前时间-上次使用时间)>t,那么这个页面就不在工作集中,而用新的页面置换它,如果<t,,该页面仍在工作集中,把该页面临时保留下来,记录生存时间最长的页面。


    总结:
    NRU算法:最近未使用算法,LRU粗糙的近似
    NFU算法:LRU近似,效率不高
    时钟算法:二次机会的实现,避免移动链表元素
    LRU算法:优秀但实现成本高
    工作集算法:实现起来开销很大

  • 相关阅读:
    equals标准写法
    抽象类的概述
    多态的弊端
    多态
    final关键字
    java 静态代码块 构造块 构造方法
    java 工具类
    逻辑运算符&&和&的区别 ||和|的区别
    react-route
    跨域
  • 原文地址:https://www.cnblogs.com/ku1274755259/p/11108531.html
Copyright © 2011-2022 走看看