操作系统内存知识点( 三 )

  • 最近最久未使用(LRU)
    选之前最长时间没访问的,引入优先队列(最大堆)
    需要设置访问时间字段
  • 简单时钟clock(最近未使用NRU)
    每个页有个标记 。
    刚换入内存或者被访问时,都会置1
如果需要换页时,步骤如下:
  1. 扫描围成换的页链表
  2. 如果标记为1,则改成0,继续往下扫
  3. 如果位0,则替换,并让指针指向下一页 。
  • 改进的clock
    把标记为改成 访问位u和修改维m
  • 1类(A =0, M = 0):表示该页面最近既未被访问,又未被修改,是最佳淘汰页 。
  • 2类(A =0, M = 1):表示该页面最近未被访问,但已被修改,并不是很好的淘汰页 。
  • 3类(A =1, M = 0):表示该页面最近已被访问,但未被修改,该页有可能再被访问 。
  • 4类(A =1, M = 1):表示该页最近已被访问且被修改,该页可能再被访问 。
  1. 先优先找u=0和m=0的页,有就直接替换
  2. 没有,则找 u = 0 且m=1的页( 没访问的最优先替换),做替换
  3. 如果中间遇到U=1的,则都会置0,如果m=1的也会置0
  4. 如果一圈都没有,则下一圈肯定有01或者00的 。
4.5 页面分配量策略
  • 固定分配,局部替换
    每个进程分配固定的物理块,且只能自己的块之间做替换
  • 可变分配,全局替换
    缺页时,可以从全局队列的页替换
  • 可变分配,局部置换
    自己替换自己,但是不够的时候可以加块
分配来源:
对换区:频繁切换的区
文件区:补怎么会变动和修改的
点击下方,第一时间了解华为云新鲜技术~
华为云博客_大数据博客_AI博客_云计算博客_开发者中心-华为云

推荐阅读