FCFS 调度算法:什么是示例程序
什么是先到先得方法?
先到先得 (FCFS) FCFS 是一种操作系统调度算法,它按照请求到达的先后顺序自动执行排队的请求和进程。它是最简单易懂的 CPU 调度算法。在这种算法中,最先请求 CPU 的进程会优先获得 CPU 资源。这是通过 FIFO 队列实现的。FCFS 的全称是 First Come First Serve(先来先服务)。
当一个进程进入就绪队列时,它的进程控制块(PCB)会与队列尾部连接。因此,当CPU空闲时,它会被分配给队列开头的进程。
先来先服务法的特点
先到先得法的主要特点如下:
- 而是一种 非抢占式 调度算法使得进程能够一直占用 CPU,直到完成其运行时间。
- 工作总是按照先到先得的原则执行。
- 它易于实施和使用。
- 这种方式性能较差,一般等待时间比较长。
先来先服务 (FCFS) 调度示例
先到先服务 (FCFS) 方法的一个实际例子是在售票处购买电影票。在这个调度算法中,人们按照排队顺序依次购票。排在队伍最前面的人先买票,然后是下一个人,以此类推,直到排在队伍最后的人买完票为止。CPU 进程也以类似的方式运行。
FCFS 如何工作?计算平均等待时间
为了理解算法如何调度进程,这里举个例子,假设有五个进程在不同时间到达,每个进程的执行时间都不同。
| 工艺应用 | 爆发时间 | 到达时间 |
| P1 | 6 | 2 |
| P2 | 2 | 5 |
| P3 | 8 | 1 |
| P4 | 3 | 0 |
| P5 | 4 | 4 |
使用FCFS调度算法,这些进程处理如下。
步骤1) 该过程从 P4 开始,其到达时间为 0。
步骤2) 在时间=1时,P3到达。P4仍在执行。因此,P3被保留在队列中。
步骤3) 在时间=2时,P1到达并被保留在队列中。
步骤4) 在时间=3时,P4进程完成执行。
步骤5) 在时间=4时,队列中第一个 P3 开始执行。
步骤6) 在时间=5时,P2到达并被放入队列中。
步骤7) 在时间=11时,P3 执行完毕。
步骤8) 在时间=11时,P1开始执行。它的执行时间为6,因此它在时间间隔17完成执行。
步骤9) 在时间=17时,P5开始执行。它的执行时间为4,因此在时间=21时执行完毕。
步骤10) 在时间=21时,P2开始执行。它的执行时间为2,因此它在时间间隔23完成执行。
步骤11) 现在,让我们计算一下上述示例的平均等待时间。
Waiting time = Start time - Arrival time
P4 = 0 – 0 = 0
P3 = 3 – 1 = 2
P1 = 11 – 2 = 9
P5 = 17 – 4 = 13
P2 = 21 – 5 = 16
平均等待时间 = (0 + 2 + 9 + 13 + 16) / 5 = 40 / 5 = 8
FCFS 的优点
以下是使用先来先服务(FCFS)调度算法的优点和好处:
- 它是最简单的形式 CPU 调度算法.
- 它很容易编程。
- 遵循先到先得的简单原则。
FCFS 的缺点
以下是使用先来先服务(FCFS)调度算法的缺点和不足之处:
- 它是一种非抢占式 CPU 调度算法,因此一旦一个进程被分配给 CPU,它就不会释放 CPU,直到它执行完毕。
- 平均等待时间较长。
- 队列末尾的短流程必须等待队列开头的长流程完成后才能进行。
- 对于分时系统而言,这不是一种理想的技术。
- 由于其简单性,FCFS 效率不高。













