【操作系统不挂科】逐步骤详解——>四种页面置换算法例题<LPU最近最久未使用&OPT最优&FIFO先进先出&CLOCK时钟置换算法>(16)

前言

大家好吖,欢迎来到 YY 滴 操作系统不挂科 系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁
本博客主要内容主要是解析四种算法
在这里插入图片描述

目录

  • 同类型题-前置知识点:
  • 一.FIFO置换算法(先进先出算法)——最简单置换算法
    • 1.基本规则介绍:
    • 2.例题演示:
  • 二.LPU置换算法(最近最久未使用置换算法)——往前看
    • 1.基本规则介绍:
    • 2.例题演示:
  • 三.OPT置换算法(最优置换算法)——往后看
    • 1.基本规则介绍:
    • 2.例题1演示:
    • 3.例题2演示:(遇到要选择 两个/两个以上页面以后永不使用的页面谁要淘汰时)
  • 四.CLOCK置换算法(时钟置换算法)
    • 1.基本规则介绍:
    • 2.例题演示:

同类型题-前置知识点:

  1. 缺页错误 :即缺页
  2. 置换数 :即 置换数=缺页数-物理块数

一.FIFO置换算法(先进先出算法)——最简单置换算法

1.基本规则介绍:

  • 当需要淘汰一个页面时,总是选择驻留主存时间最长的页面进行淘汰,即 先进入主存的页面先淘汰。
  • 遇到重复的,就 直接跳过 就行

2.例题演示:

  • 考虑下面的页面引用串: 7,2,3,1,2,5,3,4,6,7,7,1,0,5,4,6,2,3,0,1 假设采用3个帧的请求调页,FIFO置换算法会发生多少次缺页错误?
  • 17

在这里插入图片描述

在这里插入图片描述

  • 遇到重复就跳过
  • 依此类推得到最后结果:

在这里插入图片描述

二.LPU置换算法(最近最久未使用置换算法)——往前看

1.基本规则介绍:

  • LRU替换算法: 使用lru算法进行页面置换时,每次替换 最近,最久,未被使用 的页面。下面是使用LRU算法进行页面置换时的过程
  • 遇到重复的,就 直接跳过 就行

2.例题演示:

  • 考虑下面的页面引用串: 7,2,3,1,2,5,3,4,6,7,7,1,0,5,4,6,2,3,0,1 假设采用3个帧的请求调页,LPU置换算法会发生多少次缺页错误?
  • 18

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 遇到重复就跳过

  • 依此类推得到最后结果:
    在这里插入图片描述

三.OPT置换算法(最优置换算法)——往后看

1.基本规则介绍:

  • 遇到重复的,就 直接跳过 就行
  • 需要淘汰页面时,选择将来 最长时间内不再被访问 的页面,或者选择 以后永不使用的页面 进行淘汰, 往后看 。————————(例题1)
  • 重点:需要淘汰页面时,遇到要选择 两个/两个以上页面以后永不使用的页面谁要淘汰时 ,这时我们用 先进先出原则 ——————————(例题2)

2.例题1演示:

  • 考虑下面的页面引用串: 7,2,3,1,2,5,3,4,6,7,7,1,0,5,4,6,2,3,0,1 假设采用3个帧的请求调页,OPT置换算法会发生多少次缺页错误?
  • 13

在这里插入图片描述>在这里插入图片描述

  • 如果后面没有出现7,即找到不再用到的数字(7)的物理块替换
    在这里插入图片描述

  • 以此类推
    在这里插入图片描述

3.例题2演示:(遇到要选择 两个/两个以上页面以后永不使用的页面谁要淘汰时)

  • 考虑下面的页面引用串: 1、2、3、4、1、2、5、1、2、3、4、5假设采用3个帧的请求调页,OPT置换算法会发生多少次缺页错误?
  • 7
  • 基本做法和例题1一致:但是会遇到“两个/两个以上页面以后永不使用的页面谁要淘汰时”这种情况
  • 重点:需要淘汰页面时,遇到要选择 两个/两个以上页面以后永不使用的页面谁要淘汰时 ,这时我们用 先进先出原则 ,也就是先出1
    在这里插入图片描述
  • 下一步我们继续沿用这个原则,最终得出结果
    在这里插入图片描述

四.CLOCK置换算法(时钟置换算法)

1.基本规则介绍:

  • 总结:内存块满时,循环扫描各页面,第一轮淘汰访问位=0的,若没选中(访问位由1改0),进行下一轮循环
  • 每个页面设置一个 访问位 当某页被访问时,其访问位,置为1
  • 当需要淘汰一个页面时,只需检查页的访问位;
  1. 如果是0,选择此页换出;
  2. 如果是1,把它置0,暂不换出;
  3. 继续检查下一个页
  • 每次新换入一个页面后,访问位,置1; 指针指向下一个页面

2.例题演示:

  • 考虑下面的页面引用串: 1、2、3、4、1、2、5、1、2、3、4、5假设采用3个帧的请求调页,CLOCK置换算法会发生多少次缺页错误?
  • 9
  • 每次新换入一个页面后, 访问位,置1;
  • 指针指向下一个页面
    在这里插入图片描述
  • 同理,我们一直进行到下内存块满

在这里插入图片描述

  • 第一轮循环
    在这里插入图片描述

  • 第二轮循环

  • 发现内存块物理1,的1,的访问位=0,替换掉

  • 换入一个新页面,4的标志位,置1;指针指向下一个页面
    在这里插入图片描述

  • 下一步我们继续沿用这个原则,要么直接替换,要么进行一轮循环二轮循环
    在这里插入图片描述

  • 重复就跳过
    在这里插入图片描述

  • 最终得出结果
    在这里插入图片描述

  • 缺页错误9次

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YY的秘密代码小屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值