进程调度算法--引阿秀学习笔记

发布时间 2023-12-26 09:56:08作者: 廿陆

1.先来先服务 First-come First-serverd(FCFS)

  按照请求顺序进行调度,利于长作业,不利短作业,短作业等待前面长作业执行完毕才可执行,造成短作业等待时间长。

2.短作业优先 shortest job first(SJF)

  按估计运行时间最短的作业顺序进行调度,长作业可能会饿死(假如一直有短作业到来)

3.最短剩余时间优先  shortest remaining time next(SRTN)

  最短作业优先抢占,按剩余运行时间进行调度,当新作业到达时,整个运行时间与当前进程的剩余时间比较,如果新的作业时间更少,则挂起当前进程,运行新进程,否则新进程等待

4.时间片轮转

  将所有的就绪进度按   FCFS  原则排成队列,每次调度时,将CPU时间分配给队首进程,该进程可以执行一个时间片。

  当时间片用完,计时器发出时钟中断,调度程序停止该进程的执行,并将其送往就绪队列的队尾,同时将CPU分配给新的队首进程。

  时间片轮转算法的效率和时间片的大小有很大关系:

    ? 因为进程切换都要保存进程的信息并且载入新的进程信息,如果时间片太小,会导致进程切换太频繁,切换会消耗大量时间。

    ? 时间片太长,那么实时性无法保证。

5.优先级调度

  为每个进程分配一个优先级,按优先级进行调度。为了防止低优先级的进程永远得不到调度,可以随着时间的推移增加等待进程的优先级

6.多级反馈队列

  一个进程需要执行100个时间片,采用时间片轮转调度算法,需要交换100次。

  多级队列是为这种执行多个时间片的进程考虑,它设置了多个队列,每个队列时间片大小都不同,例如 1,2,4,8....进程在第一个队列没执行完,就会被移到下一个队列

  这种方式,100个时间片只需要交换7次。每个队列的优先权也不同,最上面的优先权最高,因此只有上一个队列没有进程在排队,才能调度当前队列上的进程

  类似  时间片轮转调度算法   与    优先级调度算法的结合。