跳至内容

操作系统设计/进程调度/FCFS

来自维基教科书,开放世界中的开放书籍

先到先服务 (通常称为 FIFO ‒ 先进先出) 进程调度算法是最简单的进程调度算法。它很少在现代操作系统中使用,但有时用于其他调度系统内部。

FIFO 的行为类似于任何正常的队列,无论是电影院的排队、商店的收银台排队,还是售票亭的排队。第一个到达的人或进程 (先进) 是第一个得到处理的人 (先出)。如果一个人穿过队伍然后决定忘记了一些东西,那么他们必须重新穿过队伍。

这正是使用这种设计的操作系统让程序执行其业务的方式。一次一个人 (又名:进程)。

要实现这一点,您可以创建一个队列,一种抽象数据类型 (ADT),可以由链表数据结构构建。系统可以从队列前端出队下一个进程,运行该进程直至完成 (或在更复杂的方案中将该进程入队到队列尾部),然后将该进程入队到队列尾部,允许下一个进程使用 CPU。

优点和缺点

[编辑 | 编辑源代码]

优点

  • 简单
  • 易于使用和理解
  • 先到先服务


缺点

  • 这种调度方法是非抢占式的,也就是说,进程将一直运行到完成。
  • 由于这种非抢占式调度,位于队列尾部的短进程必须等待位于前端的长进程完成。
  • 吞吐量效率不高。
  • 它仅用于 I/O 效率不太重要的小型系统中。
华夏公益教科书