@[toc]
例题1 一个四道作业的操作系统中,设在一段时间内先后到达6个作业,它们的提交时间和运行时间见表
作业号 | 提交时间 | 运行时间 |
---|---|---|
JOB1 | 8:00 | 60 |
JOB2 | 8:20 | 35 |
JOB3 | 8:25 | 20 |
JOB4 | 8:30 | 25 |
JOB5 | 8:35 | 5 |
JOB6 | 8:40 | 10 |
系统采用最短作业优先的调度算法,作业被调度进入运行后不再退出,但当一作业进入运行时,可以调整运行的优先次序。
1.按照所选择的调度算法,请分别给出上述6个作业执行时间次序
8:00 JOB1进入 当前无作业使用处理机 JOB1进入使用 运行到9:00
9:00 JOB2-6均已进入,按照运行时间长短,那么JOB5先运行,接着是JOB6,JOB3,JOB4,JOB2
则有下表
作业号 | 提交时间 | 运行时间 | 开始时刻 | 完成时刻 | 周转时间 |
---|---|---|---|---|---|
JOB1 | 8:00 | 60 | 8:00 | 9:00 | 60 |
JOB2 | 8:20 | 35 | 10:00 | 10:35 | 135 |
JOB3 | 8:25 | 20 | 9:15 | 9:35 | 70 |
JOB4 | 8:30 | 25 | 9:35 | 10:00 | 90 |
JOB5 | 8:35 | 5 | 9:00 | 9:05 | 30 |
JOB6 | 8:40 | 10 | 9:05 | 9:15 | 35 |
2.计算在上述调度算法下作业的平均周转时间
周转时间 = 完成时间-提交时间
平均周转时间 = (60+135+70+90+30+35)/ 6 = 70
例题2 一个具有两道作业的批处理系统,作业调度采用短作业优先的调度算法,进程调度采用以优先数为基础的抢占式调度算法,如下表的作业序列(表中所有作业优先数即为进程优先数,数值越小优先级越高)
作业名 | 到达时间 | 估计运算时间 | 优先数 |
---|---|---|---|
A | 10:00 | 40 | 5 |
B | 10:20 | 30 | 3 |
C | 10:30 | 50 | 4 |
D | 10:50 | 20 | 6 |
1.列出所有作业进入内存时间及结束时间
10:00 A先进入,当前处理机无任务,A开始使用处理机
10:20 B进入,B的优先级比A高,所以B进入,此时A已经运转20分钟
10:30 C来到,C的时间最长,等待,此时B运转10分钟
10:50 D来到,此时B已运转30分钟,B已结束,D进入内存,A开始运转
11:10 A结束运转,C进入内存,C比D优先级高,C运行
12:00 C结束运行,D运行
12:20 D结束
则有下表
作业号 | 提交时间 | 运行时间 | 开始时刻 | 完成时刻 | 周转时间 |
---|---|---|---|---|---|
A | 10:00 | 40 | 10:00 | 11:10 | 70 |
B | 10:20 | 30 | 10:20 | 10:50 | 30 |
C | 10:30 | 50 | 11:10 | 12:00 | 90 |
D | 10:50 | 20 | 12:00 | 12:20 | 90 |
2.计算平均周转时间
平均周转时间 = (70+30+90+90)/4 = 70
例题3 有5个批处理作业(A,B,C,D,E)几乎同时到达一个计算中心,估计的运行时间分别为2,4,6,8,10分钟,它们的优先级数分别为1,2,3,4,5(1为最低优先级),对下面的每种调度算法,分别计算作业的平均周转时间
1.最高优先级优先
E 10 D 18 C 24 B 28 A 30
平均周转时间 = (10+18+24+28+30)/5 = 110/5 = 22
2.时间片轮转(时间片为两分钟)
A 2 B 4 C 6 D 8 E 10 B 12 C 14 D 16 E 18 C 20 D 22 E 24 D 26 E 28 E 30
平均周转时间 = (2+12+20+26+30)/ 5 = 90/5 = 18
3.FIFO(作业到达顺序为C、D、B、E、A)
C 6 D 14 B 18 E 28 A 30
平均周转时间 = (6+14+18+28+30)/ 5 = 96/5 = 19.2
4.短作业优先
A 2 B 6 C 12 D 20 E 30
平均周转时间 = (2+6+12+20+30)/5 = 70/5 = 14