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 只要它在当前队列的时间片大小之下没有执行完毕 它就会不断地往下走
流程图
-
- P1(1)
- P1(1)
-
- P1(1)——>P2(1)
- P1(1)——>P2(1)
-
- 5
- 6
小结二
磁盘调度算法
磁盘调度算法主要优化的是寻道时间 因为延迟时间和传输时间我们知道它是跟转速成线性相关的 主要是硬件方面的问题
思维导图
先来先服务
- 说白了就是按顺序完成进程的请求跟进程调度一样 也是遵循先来后到的原则
最短寻找时间优先算法(SSTF)
- 类比于短作业优先算法 如果此时有源源不断地比较近地访问请求 磁头就会一直优先的访问里它最近的 导致的一个结果就是磁头在一个小的区域内来回移动 从而忽视了远端的请求 导致了饥饿的现象
扫描算法(SCAN)
初步
进阶(C-SCAN)
LOOK 算法
初步
进阶(C-LOOK)
结语
这篇是这个学期的最后一篇博客 总的来说这几个月过得还算不错 去年感觉很困难的事情也都慢慢解决了 也许时间缓缓自有答案吧 希望今年哈尔滨落下最后一片雪花的时候 我一直坚持的事情能都有一个好的结果 !
************************************************* ——Signed by 曦月逸霜