题目
有一个具有两道作业的批处理[1]系统,作业调度[2]采用短作业优先的调度算法,进程调度采用以优先数[3]为基础的抢占式调度算法,在下表所示的作业序列,作业优先数即为进程优先数,优先数越小优先级越高。作业名 到达时间 估计运行时间 优先数-|||-A 10:00 40分 5-|||-B 10:20 30分 3-|||-C 10:30 50分 4-|||-D 10:50 20分 6(1)列出所有作业进入内存时间及结束时间。(2)计算平均周转时间。
有一个具有两道作业的批处理[1]系统,作业调度[2]采用短作业优先的调度算法,进程调度采用以优先数[3]为基础的抢占式调度算法,在下表所示的作业序列,作业优先数即为进程优先数,优先数越小优先级越高。

(1)列出所有作业进入内存时间及结束时间。
(2)计算平均周转时间。
题目解答
答案
答:
每个作业运行将经过两个阶段:作业调度(SJF算法)和进程调度(优先数抢占式)。另外,批处理最多容纳2道作业,更多的作业将在后备队列等待。

CPU
(1) 10:00,作业A到达并投入运行。
(2) 10:20,作业B到达且优先权高于作业A,故作业B投入运行而作业A在就绪队列等待。
(3) 10:30,作业C到达,因内存中已有两道作业,故作业C进入作业后备队列等待。
(4) 10:50,作业B运行结束,作业D到达,按SJF短作业优先算法,作业D被装入内存进入就绪队列。而由于作业A的优先级高于作业D,故作业A投入运行。
(5) 11:10,作业A运行结束,作业C被调入内存,且作业C的优先级高于作业D,故作业C投入运行。
(6) 12:00,作业C运行结束,作业D投入运行。
(7) 12:20,作业D运行结束。

各作业周转时间为:作业A 70,作业B 30,作业C 90,作业D 90。平均作业周转时间为70分钟。
解析
步骤 1:作业调度和进程调度
作业调度采用短作业优先(SJF)算法,进程调度采用优先数为基础的抢占式调度算法。批处理系统最多容纳2道作业,更多的作业将在后备队列等待。
步骤 2:作业进入内存时间及结束时间
- 10:00,作业A到达并投入运行。
- 10:20,作业B到达且优先权高于作业A,故作业B投入运行而作业A在就绪队列等待。
- 10:30,作业C到达,因内存中已有两道作业,故作业C进入作业后备队列等待。
- 10:50,作业B运行结束,作业D到达,按SJF短作业优先算法,作业D被装入内存进入就绪队列。而由于作业A的优先级高于作业D,故作业A投入运行。
- 11:10,作业A运行结束,作业C被调入内存,且作业C的优先级高于作业D,故作业C投入运行。
- 12:00,作业C运行结束,作业D投入运行。
- 12:20,作业D运行结束。
步骤 3:计算平均周转时间
作业A的周转时间 = 11:10 - 10:00 = 70分钟
作业B的周转时间 = 10:50 - 10:20 = 30分钟
作业C的周转时间 = 12:00 - 10:30 = 90分钟
作业D的周转时间 = 12:20 - 10:50 = 90分钟
平均周转时间 = (70 + 30 + 90 + 90) / 4 = 70分钟
作业调度采用短作业优先(SJF)算法,进程调度采用优先数为基础的抢占式调度算法。批处理系统最多容纳2道作业,更多的作业将在后备队列等待。
步骤 2:作业进入内存时间及结束时间
- 10:00,作业A到达并投入运行。
- 10:20,作业B到达且优先权高于作业A,故作业B投入运行而作业A在就绪队列等待。
- 10:30,作业C到达,因内存中已有两道作业,故作业C进入作业后备队列等待。
- 10:50,作业B运行结束,作业D到达,按SJF短作业优先算法,作业D被装入内存进入就绪队列。而由于作业A的优先级高于作业D,故作业A投入运行。
- 11:10,作业A运行结束,作业C被调入内存,且作业C的优先级高于作业D,故作业C投入运行。
- 12:00,作业C运行结束,作业D投入运行。
- 12:20,作业D运行结束。
步骤 3:计算平均周转时间
作业A的周转时间 = 11:10 - 10:00 = 70分钟
作业B的周转时间 = 10:50 - 10:20 = 30分钟
作业C的周转时间 = 12:00 - 10:30 = 90分钟
作业D的周转时间 = 12:20 - 10:50 = 90分钟
平均周转时间 = (70 + 30 + 90 + 90) / 4 = 70分钟