各种调度算法的学习思路:
调度算法的评价指标:
一、先来先服务算法(FCFS):First Come First Serve
二、最短作业优先算法(SJF非抢占式):Shortest Job First
三、最短剩余时间优先算法SRTN(等价于抢占式SJF):Shortest Remaining Time Next
注意几个小细节:
- 如果题目中未特别说明,所提到的“短作业/进程优先算法”默认是非抢占式的
- 很多书上都会说“SJF最短作业优先调度算法的平均等待时间、平均周转时间最少”
严格来说,这个表述是错误的,不严谨的。之前的例子表明,SRTN最短剩余时间优先算法得到的平均等待时间、平均周转时间更少!
应该加上一个条件“在所有进程同时可运行时,采用SJF调度算法的平均等待时间、平均周转时间最少”;或者说“在所有进程都几乎同时到达时,采用SJF调度算法的平均等待时间、平均周转时间最少”;如果不加上述前提条件,则应该说“抢占式的短作业/进程优先调度算法(最短剩余时间优先,SRNT算法)的平均等待时间、平均周转时间最少” - 虽然严格来说,SJF的平均等待时间、平均周转时间并不一定最少,但相比于其他算法(如FCFS),SIF依然可以获得较少的平均等待时间、平均周转时间
- 如果选择题中遇到“SJF算法的平均等待时间、平均周转时间最少”的选项,那最好判断其他选项是不是有很明显的错误,如果没有更合适的选项,那也应该选择该选项
四、最高响应比优先算法HRRN:Highest Response Ratio Next
响应比 = (等待时间 + 要求服务时间)/ 要求服务时间
注意: 这里的要求服务时间其实就是等待时间!