内容仅供参考
1. 有一个具有两道作业的批处理系统,作业调度采用短作业优先的调度算法,进程调度采用以优先数为基础的抢占式调度算法,有如下表所示的作业序列(表中所列作业优先数即为进程优先数,数值越小优先级越高)。
① 列出所有作业进入内存的时间及结束时间;要写出为什么
② 计算平均周转时间。
作业名 | 到达时间 | 估计运行时间 | 优先数 |
---|---|---|---|
A | 10:00 | 40分 | 5 |
B | 10:20 | 30分 | 3 |
C | 10:30 | 50分 | 4 |
D | 10:50 | 20分 | 6 |
答:
① 作业进入内存时间及结束时间
作业 A:
- 到达时间:10:00
- 进入内存时间:10:00
- 结束时间:11:10
- 原因:作业A到达时,系统内存为空,因此立即进入内存并开始执行。10:20,优先级更高的B到达,A被抢占,进入就绪态,此时A还有20分钟;10:30,C到达,但内存中已有A和B两个作业;10:50,B运行结束,D进入内存,但A的优先级比D高,A先执行,执行20分钟,在11:10结束。
作业 B:
- 到达时间:10:20
- 进入内存时间:10:20
- 结束时间:10:50
- 原因:作业B到达时,作业A正在执行,内存中只有A,且作业A的估计运行时间还剩20分钟。根据抢占式调度算法,当新作业到达时,如果其优先级高于正在执行的作业,则会被抢占。因此,作业B进入内存并开始执行。作业B的估计运行时间为30分钟,所以结束时间为10:50。
作业 C:
- 到达时间:10:30
- 进入内存时间:11:10
- 结束时间:12:00
- 原因:作业C到达时,内存中已经有A和B两个作业,所以C无法进入内存;10:50,B运行结束,内存中只剩A,但此时D到达,根据短作业优先,D先进内存;11:10,A运行结束,此时内存中只剩下D,作业C被调度进入内存。此时内存中有作业D和作业C,由于作业C的优先级高于作业D,作业C先运行,在12:00结束。
作业 D:
- 到达时间:10:50
- 进入内存时间:10:50
- 结束时间:12:20
- 原因:10:50,作业D到达时,内存中只有A,此时没有进入内存的有C和D,但由于短作业优先调度,作业D时间比C短,作业D进内存;11:10,作业A运行结束,作业C进入内存,根据抢占式调度算法,作业D的优先级低于作业C,因此C先运行;12:00,作业C执行完毕,作业D开始执行,执行20分钟,完成时间为12:20。
② 平均周转时间
作业A | 作业B | 作业C | 作业D | |
---|---|---|---|---|
到达时间 | 10:00 | 10:20 | 10:30 | 10:50 |
完成时间 | 11:10 | 10:50 | 12:00 | 12:20 |
周转时间 | 70min | 30min | 90min | 90min |
平均周转时间 = (70 + 30 + 90 + 90) / 4 = 70 min
2. 在银行家算法中,若出现下述资源分配情况
Process | Allocation | Need |
---|---|---|
P0 | 0 0 3 2 | 0 0 1 2 |
P1 | 1 0 0 0 | 1 7 5 0 |
P2 | 1 3 5 4 | 2 3 5 6 |
P3 | 0 0 3 2 | 0 6 5 2 |
P4 | 0 0 1 4 | 0 6 5 6 |
Available: 1 6 2 2
答:(1)不安全。系统安全性分析:
Work | Allocation | Need | Work+Allocation | |
---|---|---|---|---|
A B C D | A B C D | A B C D | A B C D | |
P0 | 1 6 2 2 | 0 0 3 2 | 0 0 1 2 | 1 6 5 4 |
P1 | / | 1 0 0 0 | 1 7 5 0 | / |
P2 | / | 1 3 5 4 | 2 3 5 6 | / |
P3 | 1 6 5 4 | 0 0 3 2 | 0 6 5 2 | 1 6 8 6 |
P4 | 1 6 8 6 | 0 0 1 4 | 0 6 5 6 | 1 6 9 10 |
首先把资源分配给P0,收回后得到 1 6 5 4
;再分配给P3,收回后得到 1 6 8 6
;此时可以分配给P4,得到 1 6 9 10
。此时1 6 9 10
无法满足任何一个Need
,因此无法分配给任何一个Process,不存在安全序列,不安全。
(2)
Request1 (1, 2, 2, 2) < Need (2, 3, 5, 6)
Request1 (1, 2, 2, 2) < Available (1, 6, 2, 2)
假如先试着满足P2的这个请求,则 Available 变为 (0, 4, 0, 0) 。
系统状态变化见下表:
Max | Allocation | Need | Available | |
---|---|---|---|---|
A B C D | A B C D | A B C D | A B C D | |
P0 | 0 0 4 4 | 0 0 3 2 | 0 0 1 2 | 0 4 0 0 |
P1 | 2 7 5 0 | 1 0 0 0 | 1 7 5 0 | |
P2 | 2 4 8 8 | 1 3 5 4 | 1 1 3 4 | |
P3 | 1 8 10 6 | 1 2 5 4 | 0 6 5 2 | |
P4 | 0 6 6 10 | 0 0 1 4 | 0 6 5 6 |
再对系统进行安全性分析,见下表:
Work | Allocation | Need | Work+Allocation | |
---|---|---|---|---|
A B C D | A B C D | A B C D | A B C D | |
P0 | / | 0 0 3 2 | 0 0 1 2 | / |
P1 | / | 1 0 0 0 | 1 7 5 0 | / |
P2 | / | 1 3 5 4 | 1 1 3 4 | / |
P3 | / | 1 2 5 4 | 0 6 5 2 | / |
P4 | / | 0 0 1 4 | 0 6 5 6 | / |
不存在安全序列,故系统不安全,进程P2的这个请求不能被满足。