📜  FCFS 和 Priority CPU 调度的区别(1)

📅  最后修改于: 2023-12-03 14:41:09.979000             🧑  作者: Mango

FCFS(First-Come, First-Served)调度算法

FCFS是一种简单的CPU调度算法,它按照任务到达的顺序分配CPU时间。当一个进程开始执行时,它占用CPU直到完成或者被阻塞。

特点
  • 公平性:按照进程到达的顺序执行,没有优先级的考量。
  • 简单性:实现相对简单,无需额外的优先级计算和调度决策。
  • 非抢占:一旦进程获得CPU,它将一直执行直到完成或者主动放弃。
  • 不适用于长任务:长时间运行的任务可能会导致其他进程长时间等待,造成低效。
示例

| 进程 | 到达时间 | 运行时间 | 完成时间 | 周转时间 | 等待时间 | | ------ | -------- | -------- | -------- | --------- | -------- | | P1 | 0 | 4 | 4 | 4 | 0 | | P2 | 1 | 3 | 7 | 6 | 3 | | P3 | 2 | 2 | 9 | 7 | 5 | | P4 | 3 | 1 | 10 | 7 | 6 |

在上述示例中,四个进程按照到达时间的顺序被执行。没有考虑进程的优先级,因此完成时间、周转时间和等待时间都是固定的。

Priority CPU调度算法

Priority CPU调度算法根据进程的优先级确定CPU资源的分配顺序。进程的优先级可以根据不同的策略进行设置,如根据进程的重要性、响应时间等指标。

特点
  • 公平性:根据进程的优先级进行调度,高优先级的进程会优先获得CPU资源。
  • 抢占性:新的进程到达或者优先级更高的进程可抢占正在执行的进程,确保高优先级进程的及时执行。
  • 复杂性:需要确定和调整进程的优先级,可能需要对进程进行动态调整。
  • 不适用于长任务:类似FCFS,长时间运行的任务可能会导致其他进程长时间等待。
示例

| 进程 | 到达时间 | 运行时间 | 优先级 | 完成时间 | 周转时间 | 等待时间 | | ------ | -------- | -------- | ------ | -------- | --------- | -------- | | P1 | 0 | 4 | 2 | 10 | 10 | 6 | | P2 | 1 | 3 | 5 | 4 | 3 | 0 | | P3 | 2 | 2 | 1 | 6 | 4 | 2 | | P4 | 3 | 1 | 3 | 3 | 0 | 0 |

在上述示例中,四个进程根据优先级顺序被执行。进程的优先级反映了其在调度中的重要性,高优先级的进程会被尽早执行。完成时间、周转时间和等待时间根据优先级和运行时间而变化。

以上是FCFS和Priority CPU调度的区别,FCFS按照任务到达的顺序执行,没有优先级的考量;而Priority CPU调度根据进程的优先级进行调度,高优先级的进程优先获得CPU资源。