MST

星途 面试题库

面试题:进程管理之常见进程调度算法比较

请简要介绍时间片轮转调度算法、优先级调度算法和短作业优先调度算法的基本原理,并分析它们各自的优缺点及适用场景。
33.5万 热度难度
操作系统进程管理

知识考点

AI 面试

面试题答案

一键面试

时间片轮转调度算法

  1. 基本原理:将所有就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并让其执行一个时间片。时间片结束时,该进程被剥夺CPU,重新排到就绪队列的末尾等待下次调度。
  2. 优点
    • 公平性,每个进程都能在一定时间内获得CPU时间,不会导致某个进程长期得不到执行。
    • 响应时间相对较短,能较好地满足交互式系统的需求,让用户感觉系统一直在运行。
  3. 缺点
    • 时间片大小难以确定,如果时间片过长,退化为先来先服务算法,短作业等待时间过长;如果时间片过短,进程上下文切换频繁,增加系统开销。
    • 对长作业不利,长作业可能需要多次时间片轮转才能完成,导致周转时间较长。
  4. 适用场景:适用于交互式系统,如分时操作系统,保证每个用户的操作都能得到及时响应。

优先级调度算法

  1. 基本原理:为每个进程分配一个优先级,调度时从就绪队列中选择优先级最高的进程分配CPU。优先级可以根据进程的类型(如系统进程优先级通常高于用户进程)、资源需求、任务紧急程度等因素确定。
  2. 优点
    • 可以优先处理重要或紧急的任务,提高系统的整体性能和响应速度。
    • 灵活性高,可根据不同的应用场景设置不同的优先级计算方法。
  3. 缺点
    • 如果低优先级进程一直得不到调度,可能会产生饥饿现象,即低优先级进程长时间得不到执行机会。
    • 优先级的合理设定较为困难,若设置不当,可能导致系统性能下降。
  4. 适用场景:适用于实时系统,如航空交通管制系统、工业控制系统等,优先处理紧急任务;也适用于多用户系统中,根据用户的重要性或任务类型分配优先级。

短作业优先调度算法

  1. 基本原理:从就绪队列中选择估计运行时间最短的进程分配CPU。若有新的短作业到达,且其运行时间比当前正在执行的作业剩余时间短,则可能剥夺当前作业的CPU,调度新的短作业执行。
  2. 优点
    • 平均周转时间和平均等待时间最短,能有效提高系统的吞吐量,因为短作业能快速完成,减少了系统中作业的平均等待时间。
  3. 缺点
    • 长作业可能会饥饿,因为只要不断有短作业到达,长作业可能长时间得不到执行机会。
    • 作业的运行时间往往难以准确估计,实际应用中可能导致调度结果不理想。
  4. 适用场景:适用于作业运行时间可预估且作业之间差异较大的批处理系统,能充分利用系统资源,提高系统处理效率。