当前位置: 首页 > news >正文

Re:从零开始的 磁盘调度进程调度算法(考研向)

磁盘调度算法 & 进程调度算法

  • 前言
  • 进程调度算法
      • 回顾
    • 先来先服务(FCFS)
    • 短作业优先(SJF)
    • 高响应比优先(HRRN)
      • 小结一
    • 时间片轮转
    • 优先级调度
    • 多级反馈队列调度算法(难点)
      • 流程图
      • 小结二
  • 磁盘调度算法
      • 思维导图
    • 先来先服务
    • 最短寻找时间优先算法(SSTF)
    • 扫描算法(SCAN)
      • 初步
      • 进阶(C-SCAN)
    • LOOK 算法
      • 初步
      • 进阶(C-LOOK)
    • 结语

前言

首先我在学习到磁盘调度算法的时候我总能想起之前我们学过的进程调度算法,等我学完之后再回过头去看的时候 发现确实是这样 不仅思想是一样的甚至连算法名称都一样 所以索性将这两个知识点放在一篇文章里面
其实不论是当我学这些还是现在回过头来看的时候 我都觉得 这些算法的思想大多数都蕴含在他的英文名里面
所以 对于文章当中出现的类似的名字解释我统一放在文章的开头
FCFS——first come first serve
SJF——Shortest Job First
HRRN——Highest Response Ratio Next(用的少)
SSTF——Shortest Seek Time First

进程调度算法

回顾

具体来说 我们之前学习的层次关系是这样的:进程管理——>处理机调度——>进程调度算法
在正式开始之前 不妨让我们先简单回顾一下处理机调度的内容:

  • 如下图所示:
    在这里插入图片描述
    好了,在简单回顾之后 我们肯定想起来了之前学过的三个调度——高 中 低 级调度 ,显然的是,
    这里我们研究的是对于发生频率最高的调度——进程(低级)调度的一些算法

先来先服务(FCFS)

  • 这个算法给我留下的印象就是公平,为什么,跟他的名字一样就是讲究先来后到,不会允许插队的情况发生(优先级调度)
  • 但是这个算法对短作业进程不太友好 所以就有了我们后续的短作业优先算法
  • 为什么这么说呢 就拿我今天买咖啡来举例吧 :
  • 我只需要买一杯(短作业) 但是在我之前来了一个老师买50杯给全班同学 本来做我一杯我就只需要等1分钟 拿到我就直接走了 现在虽然我知道我只要一直等就一定能拿到咖啡(不会发生饥饿的现象)
  • 但是她居然让我得再等50分钟再能开始做我的 这个感受是十分糟糕的 也就是所谓的平均周转时间很大
  • 但是 对于这个老师而言 即便她在我买咖啡的时候来 她只需要等1分钟 这些咖啡师就得服务她50分钟 这个体验感完全不一样吧!
    在这里插入图片描述

短作业优先(SJF)

在这里插入图片描述

高响应比优先(HRRN)

这个算法其实就是讲究性价比 前面两个介绍的算法都只顾了某一个方面
在这里插入图片描述

小结一

在这里插入图片描述

时间片轮转

在这里插入图片描述

优先级调度

在这里插入图片描述

多级反馈队列调度算法(难点)

对于这种算法 我的理解就是 给每个进程找到一个合适的时间片 具体的看一下这个流程 应该就能理解我的意思了 就好比 对于一个进程P 只要它在当前队列的时间片大小之下没有执行完毕 它就会不断地往下走

流程图

在这里插入图片描述

    1. P1(1)
      在这里插入图片描述
    1. P1(1)——>P2(1)
      在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

小结二

在这里插入图片描述

磁盘调度算法

磁盘调度算法主要优化的是寻道时间 因为延迟时间和传输时间我们知道它是跟转速成线性相关的 主要是硬件方面的问题
在这里插入图片描述

思维导图

在这里插入图片描述

先来先服务

  • 说白了就是按顺序完成进程的请求跟进程调度一样 也是遵循先来后到的原则

在这里插入图片描述

最短寻找时间优先算法(SSTF)

  • 类比于短作业优先算法 如果此时有源源不断地比较近地访问请求 磁头就会一直优先的访问里它最近的 导致的一个结果就是磁头在一个小的区域内来回移动 从而忽视了远端的请求 导致了饥饿的现象
    在这里插入图片描述

扫描算法(SCAN)

初步

在这里插入图片描述

进阶(C-SCAN)

在这里插入图片描述

LOOK 算法

初步

在这里插入图片描述

进阶(C-LOOK)

在这里插入图片描述

结语

这篇是这个学期的最后一篇博客 总的来说这几个月过得还算不错 去年感觉很困难的事情也都慢慢解决了 也许时间缓缓自有答案吧 希望今年哈尔滨落下最后一片雪花的时候 我一直坚持的事情能都有一个好的结果 !
************************************************* ——Signed by 曦月逸霜

在这里插入图片描述

http://www.dtcms.com/a/264497.html

相关文章:

  • Node.js 安装使用教程
  • Spring 生态创新应用:微服务架构设计与前沿技术融合实践
  • Kuikly 与 Flutter 的全面对比分析,结合技术架构、性能、开发体验等核心维度
  • 对于3DGS的理解
  • Redisson 与 Java 驻内存数据网格:分布式缓存的高可用解决方案
  • 【强化学习】深度解析 GRPO:从原理到实践的全攻略
  • 微信小程序入门实例_____打造你的专属单词速记小程序
  • 【并发编程】AQS原理详解笔记1
  • 基于SpringBoot和Leaflet的区域冲突可视化系统(2025企业级实战方案)
  • 服务器异常宕机或重启导致 RabbitMQ 启动失败问题分析与解决方案
  • 使用tensorflow的线性回归的例子(五)
  • 界面组件DevExpress WPF中文教程:Grid - 如何获取节点?
  • 【办公类-53-05】20250701Python模仿制作2025学年第一学期校历(excel+pdf)
  • 计算机网络(五)数据链路层 MAC和ARP协议
  • Mabl 基于云端的智能化自动化测试平台
  • 解决Python升级后CMD仍显示旧版本:环境变量优先级问题详解
  • vue中ref()和reactive()区别
  • 聚类算法学习
  • PAL(程序辅助语言模型)技术详解
  • 通讯录管理系统设计与实现(C++)
  • URL时间戳参数深度解析:缓存破坏与前端优化的前世今生
  • 调试 WebView 旧资源缓存问题:一次从偶发到复现的实战经历
  • 安装Pillow失败,无libjpeg包
  • OWASP Top 10 是什么?
  • Docker+vLLM内网离线部署DeepSeek
  • 数据结构与算法:贪心(二)
  • 【GHS】Green Hills软件MULTI-IDE的安装教程
  • 【NLP第二期中文分词技术:规则、统计与混合方法全解】
  • ESP32与树莓派C++、Rust开发实战
  • 【V8.0 - 语言篇 II】AI的“文案扫描仪”:解剖脚本,量化内容的“灵魂骨架”