• 内存管理


    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基础学习笔记(一)
    前端之jQuery
    JavaScript概述
    前端CSS
    前端HTML
    WIN10下Mysql安装使用
    python 创建线程
    Python 创建进程
    python day24模块
    python常用模块2(序列化,pickle,shelve,json,configparser)
  • 原文地址:https://www.cnblogs.com/ku1274755259/p/11108531.html
Copyright © 2020-2023  润新知