今天我们来谈一谈进程调度算法:
1. 先来先服务调度算法(FCFS)
先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。
算法优点:易于理解且实现简单,只需要一个队列(FIFO),且相当公平
算法缺点:比较有利于长进程,而不利于短进程,有利于CPU 繁忙的进程,而不利于I/O 繁忙的进程
2. 短作业(进程)优先调度算法(SJF)
短作业(进程)优先调度算法,它作用于作业调度和进程调度。短作业优先是从后备队列当中选择一个或者若干个运行时间最短的作业,调入内存当中运行。
短进程优先是从就绪进程队列当中选出一个时间最短的进程,将处理机分配给它,立即执行并且一直执行到完成,当发生其他问题的时候,这个时候就重新调度。
算法优点:相比FCFS 算法,该算法可改善平均周转时间和平均带权周转时间,缩短进程的等待时间,提高系统的吞吐量。
算法缺点:对长进程非常不利,可能长时间得不到执行,且未能依据进程的紧迫程度来划分执行的优先级&#x