📜  各种CPU调度算法的优缺点

📅  最后修改于: 2021-09-28 10:19:12             🧑  作者: Mango

CPU调度,涉及许多不同的调度算法,各有优缺点。

1. 先到先得(FCFS):

  • 优点 –
    1. 它简单易懂。
  • 缺点——
    1. 执行时间较短的进程会受到影响,即等待时间通常很长。
    2. 支持 CPU 绑定进程,然后是 I/O 绑定进程。
    3. 在这里,第一个进程将首先获得CPU,其他进程只有在当前进程执行完毕后才能获得CPU。现在,假设第一个进程的突发时间大,而其他进程的突发时间少,那么这些进程将不得不等待更多不必要的等待,这将导致更多的平均等待时间,即Convey效应。
    4. 此效果会导致 CPU 和设备利用率降低。
    5. FCFS 算法对于分时系统来说尤其麻烦,在这种系统中,每个用户定期获得 CPU 份额非常重要。

2.最短作业优先(SJF)[抢占式和非抢占式]:

  • 优点 –
    1. 最短的工作受到青睐。
    2. 它被证明是最优的,因为它为给定的一组进程提供了最短的平均等待时间。
  • 缺点——
    1. 如果较短的过程不断出现,SJF 可能会导致饥饿。这个问题是通过老化来解决的。
    2. 它不能在短期 CPU 调度级别上实现。

3. 循环赛(RR):

  • 优点 –
    1. 每个进程都获得平等的 CPU 份额。
    2. RR 本质上是循环的,所以没有饥饿。
  • 缺点——
    1. 时间片设置太短,会增加开销,降低CPU效率,但设置太长可能会导致对短进程响应不佳。
    2. RR 政策下的平均等待时间通常很长。

4. 基于优先级 (PB):

  • 优点 –
    1. 这提供了一个很好的机制,可以精确定义每个过程的相对重要性。
  • 缺点——

    1. 如果高优先级进程占用了大量 CPU 时间,低优先级进程可能会饿死并被无限期推迟。进程永远不会被安排运行的情况称为饥饿
    2. 另一个问题是决定哪个进程获得分配给它的优先级。

5. 多级队列调度(MQS):

  • 优点 –
    1. 可以对各种进程应用单独的调度。
      • 系统进程 – FCFS
      • 互动流程 – SJF
      • 批处理 – RR
      • 学生过程 – PB
  • 缺点——
    1. 最底层的进程面临饥饿问题。

6. 多级反馈队列调度(MFQS):

  • 优点 –
    1. 低调度开销。
    2. 允许老化,因此不会挨饿。
  • 缺点——
    1. 它不灵活。
    2. 它还需要一些为所有参数选择值的方法来定义最佳调度程序,因此它也是最复杂的