FCFS 调度算法:是什么、示例程序

什么是先来先服务方法?

先来先服务 (FCFS) 是一种操作系统调度算法,它根据到达的顺序自动执行排队的请求和进程。它是最简单、最容易的 CPU 调度算法。在这种算法中,首先请求 CPU 的进程首先获得 CPU 分配。这由 FIFO 队列管理。FCFS 的完整形式是先来先服务。

当进程进入就绪队列时,其 PCB(进程控制块)会链接到队列的尾部,当 CPU 空闲时,应将其分配给队列开头的进程。

FCFS 方法的特点

  • 它支持非抢占和抢占式调度算法。
  • 作业总是按照先来先服务的顺序执行。
  • 它易于实现和使用。
  • 此方法的性能较差,平均等待时间相当长。

FCFS 调度的例子

FCFS 方法的一个现实生活中的例子是在售票处排队买电影票。在这种调度算法中,一个人按照队列的方式被服务。第一个到队列的人先买票,然后是下一个。直到队列中的最后一个人购票。使用此算法,CPU 进程的工作方式类似。

FCFS 如何工作?计算平均等待时间

这是五个在不同时间到达的进程的示例。每个进程都有不同的执行时间。

过程 执行时间 到达时间
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

使用 FCFS 调度算法,这些进程的处理方式如下。

步骤 1) 进程从到达时间为 0 的 P4 开始

FCFS Works

步骤 2) 时间=1 时,P3 到达。P4 仍在执行。因此,P3 被放入队列。

过程 执行时间 到达时间
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

FCFS Works

步骤 3) 时间=2 时,P1 到达,并被放入队列。

过程 执行时间 到达时间
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

FCFS Works

步骤 4) 时间=3 时,P4 进程完成其执行。

FCFS Works

步骤 5) 时间=4 时,队列中的第一个 P3 开始执行。

过程 执行时间 到达时间
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

FCFS Works

步骤 6) 时间=5 时,P2 到达,并被放入队列。

过程 执行时间 到达时间
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

FCFS Works

步骤 7) 时间 11 时,P3 完成其执行。

FCFS Works

步骤 8) 时间=11 时,P1 开始执行。其执行时间为 6。在时间间隔 17 时完成执行

FCFS Works

步骤 9) 时间=17 时,P5 开始执行。其执行时间为 4。在时间=21 时完成执行

FCFS Works

步骤 10) 时间=21 时,P2 开始执行。其执行时间为 2。在时间间隔 23 时完成执行

FCFS Works

步骤 11) 让我们计算上述示例的平均等待时间。

FCFS Works

Waiting time = Start time - Arrival time

P4 = 0-0 = 0

P3 = 3-1 = 2

PI = 11-2 = 9

P5= 17-4 = 13

P2= 21-5= 16

平均等待时间

FCFS Works
= 40/5= 8

FCFS 的优点

这里是使用 FCFS 调度算法的优点/好处

FCFS 的缺点

这里是使用 FCFS 调度算法的缺点/弊端

  • 它是一种非抢占式 CPU 调度算法,因此在进程被分配给 CPU 后,它将永远不会释放 CPU,直到它完成执行。
  • 平均等待时间很长。
  • 队列后面的短进程必须等待前面的长进程完成。
  • 不适合分时系统。
  • 由于其简单性,FCFS 的效率不高。

摘要

  • 定义:FCFS 是一种操作系统调度算法,它根据到达的顺序自动执行排队的请求和进程
  • 它支持非抢占和抢占式调度
  • 算法。
  • FCFS 代表先来先服务
  • FCFS 方法的一个现实生活中的例子是在售票处排队买电影票。
  • 它是最简单的 CPU 调度算法
  • 它是一种非抢占式 CPU 调度算法,因此在进程被分配给 CPU 后,它将永远不会释放 CPU,直到它完成执行。