一、进程的调度
进程调度方式是指当某一处进程正在处理机上执行时,若有某个更为重要或紧迫的进程需要处理,即有优先权更高的进程进入就绪队列,此时应如何分配处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。
二、进程的调度算法
1.先来先服务调度算法(FCFS)
先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。
先来先服务算法的特点是:算法比较简单,可以实现基本上的公平。
短作业(进程)优先调度算法SJ(P)F,是指对短作业或短进程优先调度的算法。它们可以分别用于作业调度和进程调度。短作业优先(SJF)的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。而短进程优先(SPF)调度算法则是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。
短作业优先算法的缺点:对长作业不利,造成“饥饿”现象;未考虑作业紧迫程度; 由于运行时间是估计所得,所以并不一定能做到短作业优先
为了照顾紧迫型作业,使之在进入系统后便获得优先处理,引入了最高优先权优先(FPF)调度算法。此算法常被用于批处理系统中,作为作业调度算法,也作为多种操作系统中的进程调度算法,还可用于实时系统中。当把该算法用于作业调度时,系统将从后备队列中选择若干个优先权最高的作业装入内存。当用于进程调度时,该算法是把处理机分配给就绪队列中优先权最高的进程,这时,又可进一步把该算法分成如下两种。
1) 非抢占式优先权算法
上式可以看出:
如果作业的等待时间相同,则要求服务的时间愈短,其优先权愈高,因而该算法有利于短作业;
当要求服务的时间相同时,作业的优先权决定于其等待时间,等待时间愈长,其优先权愈高,因而它实现的是先来先服务;
(1)CPU利用率:CPU在忙碌状态所占的时间比
(2)系统吞吐量:单位时间内CPU完成作业的数量
(3)周转时间:从作业提交到作业完成所经历的时间,包括作业等待、在就绪队列中排队、在处理机上运行以及进行输入\输出操作所花费的时间的总和。
(4)等待时间:进程处理等处理机状态时间之和。处理机调度算法实际上并不影响作业执行或输入/输出操作的时间,只影响作业在就绪队列中等待所花的时间。因此,衡量一个高度算法的优劣,常常只需简单地考察等待时间。等待时间=周转时间-处理机上运行时间-输入\输出所花费的时间。
(5)响应时间:从用户提交请求到系统首次产生响应所用的时间。