1)
2)
3)
综合以上准则,下面浅显论述一下主要的处理机调度算法的优劣点。
1、先来先服务和短作业(进程)优先调度算法FCFS
基本思想:按照进程进入就绪队列的先后次序来分配处理机。一般采用非剥夺的调度方式。适用于作业调度也用于进程调度。
当作业调度采用该算法:每次调度都是从后备作业队列中,选择一个或多个最先进入该队列的作业,将它们调入内存,并分配资源、创建进程,之后进入就绪队列。
当进程调度采用该算法:该算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行下去,直到该进程完成或阻塞时,才释放处理机。
优缺点:有利于长作业进程,而不利于短作业进程这是因为若一个长作业先到达系统,就会使许多短作业等待很长的时间,从而引起许多短作业用户的不满。有利于CPU繁忙型作业,不利于I/O,忙的作业。
现在操作系统中,已很少用该算法作为主要调度策略,尤其是在分时系统和实时系统中。但它常被结合在其它调度策略中使用。
2、短作业(进程)优先调度算法(SJF/SPF)
优缺点:降低作业的平均等待时间,提高系统吞吐量。对长作业不利;未考虑作业的紧迫程度;对进程估计执行时间难以预测。
3、高优先权优先调度算法Priority SchedulingFirst
1)
a)
基本原理:系统把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直到完成;或因发生某时间使该进程放弃处理机时,系统才可将处理机重新分配给另一优先权最高的进程。
适用:批处理系统,实时性要求不高的实时系统。
b)
基本原理:系统把处理机优先权最高的进程,使之执行。若在其执行期间,只要又出现另一个优先权更高的进程,则立即停止当前进程的执行,重新分配处理机给新来的优先权更高的进程。
适用:实时性要求高的实时系统,对性能要求高的批处理和分时系统。
2)
a)
静态优先权是在创建进程的时确定的,且在进程的整个运行期间保持不变。一般,利用某一范围内的整数来表示,如,0~7或0~255中的整数。
b)
是指在创建进程时确定的优先权,在进程的运行期间会发生变化。
4、高响应比优先调度算法
思想:利用响应比也就是优先权来决定给作业分配处理机。
我们可以看出,优先权随等待时间的增加而提高,因此长作业在等待一定时间后,就有机会分配到处理机执行。
5、基于时间片的轮转调度算法RR,Round Robin
早期的分时系统采用时间片轮转算法,90年代后,采用多极反馈队列调度算法。
1)
基本思想:系统将所有就绪进程按FCFS的原则,排成一个队列,依次调度,把CPU分配给队首进程,并令其执行一个时间片/CPU时间,通常为几个毫秒~几百毫秒。时间片用完后,该进程将被抢占并插入就绪队列末尾。
2)
基本思想:多级反馈队列调度算法是时间片轮转算法和优先级调度算法的综合和发展,通过动态调整进程优先级和时间片大小,不必事先估计进程的执行时间,多级反馈队列可兼顾多方面的系统目标,是目前公认的一种较好的进程调度算法。
实现过程:
1)
2)
3)
4)
6、结论:
1)
2)
3)