什么是进程调度?常用的进程调度算法有哪些?试比较他们之间的性能。什么是进程调度?
进程调度,用户进程数进程调度一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。无论是在批处理系统还是分时系统中,用户进程数进程调度一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。 进程调度的的分级高级、中级和低级调度作业从提交开始直到完成,往往要经历下述三级调度:高级调度:(High-LevelScheduling)又称为作业调度,它决定把后备作业调入内存运行;低级调度:(Low-LevelScheduling)又称为进程调度,它决定把就绪队列的某进程获得CPU;中级调度:(Intermediate-LevelScheduling)又称为在虚拟存储器中引入,在内、外存对换区进行进程对换。先进先出算法进程调度算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行下去,直到该进程完成或阻塞时,才释放处理机。例如,有三个进程P1、P2和P3先后进入就绪队列,它们的执行期分别是21、6和3个单位时间,执行情况如下图:对于P1、P2、P3的周转时间为21、27、30,平均周转时间为26。可见,FIFO算法服务质量不佳,容易引起作业用户不满,常作为一种辅助调度算法。最短CPU运行期优先调度算法(SCBF--ShortestCPUBurstFirst)该算法从就绪队列中选出“下一个CPU执行期”最短的进程,为之分配处理机。例如,在就绪队列中有四个进程P1、P2、P3和P4,它们的下一个执行期分别是16、12、4和3个单位时间,执行情况如下图:P1、P2、P3和P4的周转时间分别为35、19、7、3,平均周转时间为16。该算法虽可获得较好的调度性能,但难以准确地知道下一个CPU执行期,而只能根据每一个进程的执行历史来预测。轮转法前几种算法主要用于批处理系统中,不能作为分时系统中的主调度算法,在分时系统中,都采用时间片轮转法。简单轮转法:系统将所有就绪进程按FIFO规则排队,按一定的时间间隔把处理机分配给队列中的进程。这样,就绪队列中所有进程均可获得一个时间片的处理机而运行。多级队列方法:将系统中所有进程分成若干类,每类为一级。多级反馈队列多级反馈队列方式是在系统中设置多个就绪队列,并赋予各队列以不同的优先权