P1

如下作业序列:作业 1(提交时间 8:00,运行时间 1:00),作业 2(提交时间 8:30,运行时间 3:00),作业 3(提交时间 9:00,运行时间 0:10),作业 4(提交时间 9:30,运行时间 0:50)。试用 FCFS 和 STN 算法调度该作业序列。并分析哪一种调度算法性能更好。

FCFS 调度

  • 8:00 作业 1 到达,开始执行
    • 完成时间 9:00
  • 8:30 作业 2 到达,等待
  • 9:00 作业 1 完成,作业 3 到达,等待
    • 作业 2 开始执行
    • 完成时间 12:00
  • 9:30 作业 4 到达,等待
  • 12:00 作业 2 完成
    • 作业 3 开始执行
    • 完成时间 12:10
  • 12:10 作业 3 完成
    • 作业 4 开始执行
    • 完成时间 13:00

平均周转时间:

STN 调度

选择当前已经到达且运行时间最短的作业执行时间

  • 8:00
    • 到达作业:1(运行 1:00)
    • 可运行作业:1
    • 选择作业 1 执行
      • 完成时间 9:00
  • 8:30
    • 到达作业:2 (运行 3:00)
    • 可运行作业:1 2
    • 作业 1 继续执行
  • 9:00
    • 作业 1 完成
    • 到达作业:3(运行 0:10)
    • 可运行作业:2 3
    • 选择作业 3 执行
  • 9:10
    • 作业 3 完成
    • 可运行作业:2(完成时间 12:10)
    • 选择作业 2 执行
  • 9:30
    • 到达作业:4(运行 0:50)
    • 可运行作业:2 4(完成时间 10:20)
    • 作业 2 继续执行
  • 12:10
    • 作业 2 完成
    • 可运行作业:4
    • 作业 4 执行
  • 13:00
    • 完成

平均周转时间:

从平均周转时间的角度来看,STN 更优


P2

一个批处理系统中,有两个作业进程。有一个作业序列,到达时间和估计服务时间如下。系统采用最高响应比优先作业调度算法,作业进程的调度采用短作业优先的抢占式调度算法。请列出各作业的执行情况表。

作业到达时间服务时间
A035
B1030
C1545
D2020
E3030

时间线模拟

即用 SRTF 在两个进程(进程队列)中选择运行,在 ready 队列(作业队列)里面采用 HRRN 发射任务

  • 10:00 A 到达
    • 作业中只有 A,直接转化为进程运行
    • 运行 A,剩余时间 35
  • 10:10 B 到达
    • 进程队列还有一个,加入进程队列,触发 SRTF
    • A 剩余 25,B 剩余 30,继续运行 A,B 等待
  • 10:15 C 到达
    • 加入作业队列
  • 10:20 D 到达
    • 加入作业队列
  • 10:30 E 到达
    • 加入作业队列
    • 当前作业队列有:C D E
  • 10:35
    • A 完成,进程队列释放一个位置,触发 HRRN
      • C:等待 分钟,
      • D:等待 分钟,
      • E:等待 分钟,
      • D 的 HR 最高,加入进程队列
    • 进程队列中:B 剩余 30,D 剩余 20
    • 选择 D 运行
  • 10:55
    • D 完成,进程释放一个位置,触发 HRRN
      • C:等待 40 分钟,
      • E:等待 25 分钟,
      • C 的 HR 更高,加入进程
    • 进程队列:B 剩余 30,C 剩余 45
    • 选择 B 运行
  • 11:25
    • B 完成,E 加入进程队列
    • 进程队列:C 剩余 45,E 剩余 30
    • 选择 E 运行
  • 11:55
    • E 完成,运行 C
  • 12:40
    • C 完成

最终执行情况表

作业到达时间服务时间开始时间完成时间周转时间带权周转时间
A035035351.0
D20203555351.75
B103035→5585752.5
E303085115852.83
C154585→1151601453.22

P3

如下作业序列:有 5 个批处理作业(A,B,C,D,E)几乎同时到达一个计算中心,估计的运行时间分别为 2,4,6,8,10 分钟。它们的优先级分别为 1,2,3,4,5(1 为最低优先级)。对下面每种调度算法,分别计算作业的平均周转时间。

  • 最高优先级优先
  • 时间片轮转(时间片为 2 分钟)
  • FCFS。(到达顺序为 C,D,B,E,A)
  • 短作业优先

最高优先级优先

  • 执行顺序:E(优先级 5)→ D(4)→ C(3)→ B(2)→ A(1)
  • 完成时间(周转时间):E(10)、D(18)、C(24)、B(28)、A(30)
  • 平均周转时间:22 分钟

时间片轮转

假设初始队列顺序为 ABCDE

  • A 完成于 2,B 完成于 12,C 于 20,D 于 26,E 于 30
  • 平均周转时间:18 分钟

FCFS

  • 执行顺序为 CDBEA
  • 完成时间(周转时间):C(6)、D(14)、B(18)、E(28)、A(30)
  • 平均周转时间:19.2 分钟

短作业优先

  • 执行顺序为 ABCDE
  • 完成时间(周转时间):A(2)、B(6)、C(12)、D(20)、E(30)
  • 平均周转时间:14 分钟