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算法:优秀但实现成本高
    工作集算法:实现起来开销很大

  • 相关阅读:
    Python Revisited Day 13 (正则表达式)
    Python Revisited Day 06 (面向对象程序设计)
    Python Revisited (变量)
    Python Revisited Day 05(模块)
    Python Revisited Day 04 (控制结构与函数)
    Python Revisited Day 03 (组合数据类型)
    Numpy
    Python Revisited Day 01
    Python3使用openpyxl读写Excel文件
    Python3操作YAML文件
  • 原文地址:https://www.cnblogs.com/ku1274755259/p/11108531.html
Copyright © 2011-2022 走看看