1.先来先服务(FCFS)
先来先服务调度算法是一种最简单的调度算法,既可用于作业调度,也可用于进程调度
进程调度采用FCFS算法时,每次调度都从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之运行
FCFS算法比较有利于厂作业(进程),而不利于短作业(进程)
该方法按照进程到达的先后顺序排队,每次调度队首的进程
FCFS算法属于非剥夺调度方式,实现简单,看似公平
但对于那些后进入队列而运行时间较短的进程,或I/O型的进程而,可能需要长时间尝试
算法优缺点
算法容易实现
对短进程不公平
由于长进程可能排在队列前面,必将增加队列后部进程的等待时间,从而增加平均周转时间
不利于I/O型进程,未有效利用系统资源
一般地,FCFS与其他调度算法混合使用。例如,系统可以按照不同的优先级维护多个就绪队列。每个队列内部按照FCFS算法调度
FCFS算法同时适合于长程、中程和短度调度三种调度类型
2短作业优先调度算法
对短作业或段金成优先调度的算法。可以分别用于作业调度和进程调度
短作业优先的调度算法:从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行
短进程优先调度算法,是从就绪队列中选出一估计运行时间最短的进程,将处理及分配给它,使他立即执行
算法优缺点
算法容易实现
适用于作业调度
能有效降低作业的平均等待时间
忽视了作业等待时间,堆场作业不理,有可能导致厂作业长期不被调度
要精确知道一个作业的运行时间比较困难的
采用非剥夺调度方式,未考虑进程的紧迫程度,不适合于分时系统和事务处理系统
高响应比优先调度算法
在批处理系统中,短作业优先算法是一种比较好的算法,其主要不足是长作业的运行得不到保证。我们为每个作业引入动态优先权,并使作业的优先级随着等待时间的增加而以速率a提高,则可解决问题。见下式子:
优先权=(等待时间+要求服务时间)/要求服务时间
由于等待时间与服务时间之和就是系统的响应时间,故上式又表示为 :Rp=响应时间/要求服务时间