标签:
知识/探索 |
1.假设一个系统中有5个进程,它们的到达时间和服务时间如表1所示,忽略I/0以及其他开销时间,若分别按先来先服务(FCFS)、非抢占及抢占的短进程优先(SPF)、高响应比优先(HRRF)、时间片轮转(RR,时间片=1)调度算法进行CPU调度,请给出各进程的完成时间、周转时间、带权周转时间、平均周转时间和平均带权周转时间。
表1进程到达和需服务时间
进程 |
到达时间 |
服务时间 |
A |
0 |
3 |
B |
2 |
6 |
C |
4 |
4 |
D |
6 |
5 |
E |
8 |
2 |
分析:进程调度的关键是理解和掌握调度所采用的算法。FCFS算法选择最早进入就绪队列的进程投入执行;SPF算法选择估计运行时间最短的进程投入执行,采用抢占方式时,若新就绪的进程运行时间比正在执行的进程的剩余运行时间短,则新进程将抢占CPU;HRRF算法选择响应比最高的进程投入执行;RR算法中,就绪进程按FIFO方式排队,CPU总是分配给队首的进程,并只能执行一个时间片。
答:各进程的完成时间、周转时间和带权周转时间(如表2所示)
表2进程的完成时间和周转时间
|
进程 |
A |
B |
C |
D |
E |
平 均 |
FCFS |
完成时间 周转时间 带权周转时间 |
3 3 1.00 |
9 7 1.17 |
13 9 2.25 |
18 12 2.40 |
20 12 6.00 |
8.6 2.56 |
SPF(非抢占) |
完成时间 周转时间 带权周转时间 |
3 3 1.00 |
9 7 1.17 |
15 11 2.75 |
20 14 2.80 |
11 3 1.5 |
7.6 1.84 |
SPF(抢占) |
完成时间 周转时间 带权周转时间 |
3 3 1.00 |
15 13 2.16 |
8 4 1.00 |
20 14 2.80 |
10 2 1.00 |
7.2 1.59 |
HRRF |
完成时间 周转时间 带权周转时间 |
3 3 1.00 |
9 7 1.17 |
13 9 2.25 |
20 14 2.80 |
15 7 3.5 |
8 2.14 |
RR(q=1) |
完成时间 周转时间 带权周转时间 |
4 4 1.33 |
18 16 2.67 |
17 13 3.25 |
20 14 2.8 |
15 7 3.5 |
10.8 2.71 |
2. 产生死锁的四个必要条件是什么?
答:产生死锁的必要条件如下:
(1)互斥条件:进程应互斥使用资源,任一时刻一个资源仅为一个进程独占,若一个进程请求一个已被占用的资源时,它被置成等待状态,直至占用者释放已占有资源。
(2)占有和等待条件:一个进程请求资源得不到满足时,不释放已占有的资源。
(3)不剥夺条件:任一进程不能从另一进程那里抢夺资源,即已被占用的资源,只能由占用进程自己来释放。
(4)循环等待条件:存在一个循环等待链,其中,每一个进程分别等待它一个进程所持有的资源,造成永远等待。
3.在银行家算法中,若出现下述资源分配情况:
进 |
Allocation |
Need |
Available |
A |
A |
A |
|
P0 P1 P2 P3 P4 |
0 1 1 0 0 |
0 1 2 0 0 |
1 |
试问:(1)该状态是否安全?
(2)如果进程P2提出请求Request(0,2,2,2〉后,系统能否将资源分配给它?
解:(1)利用银行家算法对此时刻的资源分配情况进行分析,可得此时刻的安全性分析情况。
|
Work |
Need |
Allocation |
Work+Allocation |
Finish |
A |
A |
A |
A |
||
P0 P3 P4 P1 P2 |
1 1 1 1 2 |
0 0 0 1 2 |
0 0 0 1 1 |
1 1 1 2 3 |
true true true true true |
从上述分析中可以看出,此时存在一个安全序列{P0,P3,P4,P1,P2},故该状态是安全的。
(2)P2提出请求Request2(1,2,2,2),按银行家算法进行检查:
进 |
Allocation |
Need |
Available |
A |
A |
A |
|
P0 P1 P2 P3 P4 |
0 1 2 0 0 |
0 1 1 0 0 |
0 |
再利用安全性算法检查系统是否安全,可用资源Available (0,4,0,0)已不能满足任何进程的需要,故系统进入不安全状态,此时系统不能将资源分配给P2。