1.先来先服务(FCFS,First-come first-served)

定义
先来先服务(FCFS)是一种简单的调度算法,其核心思想是按照任务或进程到达的顺序依次执行,即最先到达的请求最先被处理。该算法广泛应用于作业调度(如批处理系统)、进程调度、磁盘I/O调度等领域。


特点与工作原理

  1. 非抢占式
    一旦一个任务开始执行,会一直占用资源直到完成,期间不会被其他任务中断。

  2. 公平性
    所有任务按到达顺序排队,无优先级区分。

实现简单
只需维护一个先进先出(FIFO)队列,管理开销低。

等待时间的计算:

这里有三个进程,P1,P2,和P3,他们的到达时间分别为0,1,2,根据先来先服务,先对进程P1进行处理,再对进程P2,接着再对进程P3

我们可以对其作出一个简单的Gantt图:

根据等待时间=开始时间-到达时间 我们可以计算平均等待时间

P1等待时间 = 0 - 0

P1等待时间 = 27 - 1

P1等待时间 = 30 - 2

平均等待时间:

(0+26+28) / 3 = 18

2.短作业优先

定义:短作业优先(SJF)是一种调度算法,优先执行预计运行时间最短的任务,以减少平均等待时间,提高系统吞吐量。SJF 可以是非抢占式(一旦开始执行就运行到完成)或抢占式(也称为最短剩余时间优先,SRTF)。


特点与工作原理

  1. 目标

    • 最小化平均等待时间。

    • 提高系统吞吐量(单位时间内完成的任务数)。

  2. 非抢占式 SJF

    • 选择当前就绪队列中执行时间最短的任务运行,直到完成。

  3. 抢占式 SJF(SRTF)

    • 如果有更短的新任务到达,可以抢占当前任务

等待时间的计算:

 

不可抢占:

这里有P1,P2,P3,三个进程,在0时刻,只有P1到达,所以只能执行P1,然后1时刻只有P2到达,所以只能执行P2,最后执行P3,执行顺序为:P1,P2,P3

P1等待时间 = 0 - 0

P2等待时间 = 27 - 1

P3等待时间 = 30 - 2

P4等待时间 = 0 - 0

可抢占:0时刻P1到达,执行完一秒后,P2到达此时P2运行时间小于P1,P2先执行,P2执行一秒后P3到达,P3执行时间小于P2所以继续执行P2,4秒完成P2,此时P1执行时间大于P3所以先执行P3

根等待时间计算公式:等待时间= 完成时间 - 运行时间 - 等待时间

P1等待时间 = 35 - 27 -0 

P2等待时间 = 4 - 1 -3 

P3等待时间 = 9 - 5 -2 

计算出平均等待时间:[(35-27) + 0 + (9-7)] / 3 = 10/3

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐