ZH
我的工具

CPU 调度计算器(FCFS、SJF、SRTF、时间片轮转、优先级)

模拟 FCFS、SJF、SRTF、时间片轮转和优先级调度:生成甘特图,计算完成、周转、等待和响应时间,以及平均值和 CPU 利用率。

平均等待时间
6.5
平均周转时间
13
平均响应时间
4.25
吞吐量
0.1538 进程/时间单位
CPU 利用率
100%
甘特图
SRTF

周转时间 = 完成 − 到达 · 等待时间 = 周转 − 执行 · 响应时间 = 首次获得 CPU 的时刻 − 到达。

并列时,先到达的优先,再并列则先列出的进程优先。

各进程(SRTF)
进程到达执行优先级完成周转等待响应
P1083171790
P21415400
P329426241515
P435210722
同一组进程下所有算法的对比
算法平均等待平均周转平均响应
FCFS8.7515.258.75
SJF7.7514.257.75
SRTF6.5134.25
时间片轮转(q = 2)12.7519.252
优先级(非抢占)7.7514.257.75
优先级(抢占)6.5134.25
我的工具 →
广告

操作系统课程和考试经常要求你手工调度一组进程,并算出每个进程的等待时间和周转时间。这个计算器模拟经典的 CPU 调度算法:FCFS、SJF、SRTF(抢占式 SJF)、时间片轮转,以及带或不带抢占的优先级调度,并给出甘特图、每个进程的表格、平均值、吞吐量和 CPU 利用率,还有同一输入下所有算法的对比。

使用方法

  1. 每行输入一个进程:名称、到达时间、执行时间,以及(优先级调度时)优先级。
  2. 选择算法;时间片轮转需要设置时间片。
  3. 说明数值越小还是越大表示优先级越高。
  4. 查看甘特图、表格和平均值,并在第二个表中对比各个算法。

计算公式

周转时间 = 完成 − 到达 · 等待时间 = 周转 − 执行 · 响应时间 = 首次运行 − 到达 · 利用率 = 忙碌时间 ÷ (最后完成 − 最早到达)

非抢占算法让进程一旦开始就运行到结束;SRTF 和抢占式优先级则在每次有进程到达时重新决策。时间片轮转让每个进程最多运行一个时间片,然后排到就绪队列末尾;默认情况下,恰好在时间片结束时到达的进程,像大多数教材那样排在被抢占进程之前(可通过选项更改)。并列时先到达的优先,再并列则先列出的优先。上下文切换时间按 0 计算。

示例

示例是 Silberschatz《Operating System Concepts》中的 SRTF 例题:P1(到达 0,执行 8)、P2(1,4)、P3(2,9)、P4(3,5)。调度顺序为 P1 0–1、P2 1–5、P4 5–10、P1 10–17、P3 17–26,等待时间分别是 9、0、15、2,因此平均等待时间为 6.5。同样的进程用普通 FCFS,平均等待 8.75。

常见问题

哪种算法的平均等待时间最短?

在已知执行时间的情况下,SRTF(抢占式最短作业优先)的平均等待时间最优。真实系统无法提前知道执行时间,所以才会使用时间片轮转和优先级方案。

什么是响应时间?

从进程到达到它第一次获得 CPU 的时间。时间片轮转能让它保持很短,这对交互式程序很重要。

为什么我的教材给出的时间片轮转答案略有不同?

不同教材对“恰好在时间片结束时到达的进程排在被抢占进程之前还是之后”的处理不同。请切换选项,使之与你的课程一致。

资料来源

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). CPU 调度计算器(FCFS、SJF、SRTF、时间片轮转、优先级). https://kakao.mobile/zh/tools/cpu-scheduling-simulator/

MLA

“CPU 调度计算器(FCFS、SJF、SRTF、时间片轮转、优先级).” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/cpu-scheduling-simulator/.

广告