调度算法,上古三算法

先来先服务FCFS

周转时间=完成时间-到达时间

带权周转时间=周转时间/运行时间

等待时机=周转时间-运行时间-io操作时间

是非抢占式的算法

优点:公平,算法实现简单

缺点:排在长作业后面的短作业需要等待很长时间,带权周转时间很大,对短作业来说用户体验不好-对长作业有利对短作业不利

不会导致饥饿

短作业优先SJF

这个自己根据书上画一下就好了

tips:如果题目中没有特别说明,那么所提到的“短作业/进程优先算法”默认是非抢占式的

很多书上都会说 SJF调度算法平均等待时间/平均周转时间最少,应该加上一个条件,在所有进程同时可运行时

SJF算法是非抢占式的算法,但是也有抢占式的版本--最短剩余时间优先算法

优点:最短的平均等待时机,平均周转时间

缺点:不公平,对短作业有利,对长作业不利。可能产生解饿现象

会导致饥饿

高响应比优先HRRN

每次调度时,先计算各个作业/进程的响应比,选择响应比最高的作业为其服务

\[响应比=\frac{等待时间+要求服务时间}{要求服务时间} \]

是一个非抢占式算法

谁饿的时间最长就让谁上

优点:总和考虑了等待时间和运行时间(要求服务时间)

等待时间相同时,要求服务时间短的优先(SJF的优点)

要求服务时间相同时,等待时间长的优先

对于长作业来说,虽则等待时间增加,会越来越有机会获得机会

不会导致饥饿

如果一个进程或者作业长期得不到服务就会饥饿

image-20250927171152082

posted @ 2025-09-27 17:42  是我,米老鼠  阅读(15)  评论(0)    收藏  举报