进程调度算法

时间:2021-11-02 15:47:04
什么时进程调度算法?
在操作系统中,用户进程数一般都多于处理机的数量,所以进程势必会互相争夺处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程。而这种策略就是进程的调度算法。
进程调度算法有哪些?
 1.先进先出(FIFO)
   先进先出算法总是把处理机给最先进入就绪队列的进程,一个进程一旦分的了处理机就会一直执行下去,直到执行完成或者阻塞时才释放处理机。
 2.最短作业优先
   该算法是优先把处理机给就绪队列中CPU执行期最短的进程。
  例如:现在有三个进程,p1,p2,p3三个进程,他们的下一执行周期分别是12,11,4,8个单位时间,执行情况
  p1,p2,p3的周转时间分别为35,23,12,4。
 缺点: 虽可获得较好的调度性能,但难以准确地知道下一个CPU执行期,而只能根据每一个进程的执行历史来预测。


3.时间片轮转法
系统将所有就绪进程按先进先出规则排队,按一定的时间间隔把处理机分配给队列中的进程。这样,就绪队列中一个进程执行完一个时间片就立刻把处理机让出来,给接下来的进程使用,如此往复。

 4.优先级调度
(1)抢占优先级调度算法
     在这种调度方式下,进程调度程序把处理机分配给当时优先级最高的就绪进程,让它执行。一旦出现了另一个优先级更高的就绪进程时,进程调度程序就停止正在执行的进程,将处理机分配给新出现的优先级更高的就绪进程。
     
(2)非抢占调度
        在这种调度方式下,进程调度程序把处理机分配给当时优先级最高的就绪进程,让它一直执行,直到完成才把处理机让给下一个优先级较高的进程。