习题解答——第4章调度与死锁

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第4章调度与死锁思考与练习题

2.考虑下面的进程集合:

(1)

(2)

分别对以上两个进程集合,计算使用先来先服务(FCFS)、时间片轮转法(时间片q=1)、短进程优先(SPN)、最短剩余时间优先(SRT,时间片q=1)、响应比高者优先(HRRN)及多级反馈队列(MFQ,第1个队列的时间片为1,第i(i<1)个队列的时间片q=2(i-1))算法进行CPU调度,请给出各进程的完成时间、周转时间、带权周转时间,及所有进程的平均周转时间和平均带权周转时间。

解答:

(1)

平均带权周转时间W=(1+1.4+3.5+1.2+1.6)/5=8.7/5=1.74

平均带权周转时间W= (2+2.5+2+1.8+1.6)/5=9.4/5=1.98

平均带权周转时间W=(1+1.8+1+1.2+1.6)/5=6.6/5=1.32

平均带权周转时间W=(1+1.8+1+1.2+1.6)/5=6.6/5=1.32

平均带权周转时间W=(1+1.4+3.5+1.2+1.6)/5=8.7/5=1.74

多级反馈队列:第1个队列的时间片为1,第i(i<1)个队列的时间片q=2(i-1))即:

平均带权周转时间W= (1.33+2.5+1.8+1.8+1.6)/5=9.03/5=1.806

(2)

平均带权周转时间W=(1+1+9+1.89)/4=3.22

平均带权周转时间W=(1+1.89+1+1.89)/4=1.45

平均带权周转时间W=3.22

平均带权周转时间W=1.25

平均带权周转时间W=3.22

平均带权周转时间W=1.445

3.考虑系统中出现的情况:

(1)计算每个进程还可能需要的资源,并填入表的“仍然需要”栏目中。

(2)系统当前是否处于安全状态?为什么?

(3)系统当前是否死锁?为什么?

(4)如果进程P3又有新的请求(0,2,0,0),系统是否可以安全地接受此请求?解答:

存在安全序列

(3)不会发生死锁,因为存在安全序列,进程按此顺序执行可保证不死锁。

(4)不可以接受新的请求,因为系统可用资源不足。(R2只有1个,而新请求P3需要2个)。4.考虑有一个共有150个存储单元的系统,已经如下分配给三个进程:

试确定下面新的请求是否安全。如果安全,请给出安全序列。

(1)第4个进程到达,它最多需要60个存储单元,最初需要25个单元。

(2)第4个进程到达,它最多需要60个存储单元,最初需要35个单元。

解答:

15.(1)

(2

5.有3个进程共享4个资源,一次只能请求或释放一个资源,每个进程最大需要2个资源,试说明系统不会发生死锁。

解答:

根据抽屉原理,3个进程分4个资源,总有1个进程得到2个资源,该进程将满足最大需求而运行完毕,它释放资源后,系统中剩余2个进程享用4个资源,这2个进程也将满足最大需求,所以系统不会发生死锁。

6.N个进程共享M个资源,一次只能请求或释放一个资源,每个进程最大需要资源数不超过M,并且所有进程最大需求的总和小于(M+N),试说明系统不会发生死锁。

解答:方法一:

根据抽屉原理,3个进程分4个资源,总有1个进程得到2个资源,该进程将满足最大需求而运行完毕,它释放资源后,系统中剩余2个进程享用4个资源,这2个进程也将满足最大需求,所以系统不会发生死锁。

反证法:

设该系统发生死锁,即设k 个线程用尽了M 个资源,但都没达到其最大需求。已经满足了需求的进程数为N – K.

Xi 为线程i 所占用的资源数,Yi 为线程i还需要的资源数。Yi > =1 , 形成死锁。

X1 + X2 + X3 + X4 + ……+ Xk = M

(X1 + X2 + ……+ Xk)+ (Y1 + Y2 + ……+ Yk)< M + N – (N – k)

Y1 + Y2 + ……+ Yk < k

若Yi > = 1 , Y1 + Y2 + ……+ Yk >= k, 矛盾,即该系统不可能发生死锁。

方法二:

(1)进程P1,P2,P3按顺序分别申请一个资源,这时系统中还剩一个资源。然后P1得到剩下的那一个资源,运行完毕再释放掉一个资源,这时系统中还是有一个剩余的资源,接下来进程P2得到一个资源,运行完毕后释放掉一个资源,最后P3得到P2释放的一个资源得以运行。安全序列,所以系统不会发生死锁。

(2)进程Pi,所需的资源数为Si。由题知M≧1,Si≦M

在N个进程中每次让所需资源最小的进程Pmin(i)运行(每次申请一个资源),它所需的资源数为Smin(i),运行完后释放一个资源,此时系统中剩余的资源为M-Smin(i)+1个。Smin(i+1)为系统中进程所需的第二小的资源数。

只要满足公式M-Smin(i)+1≧Smin(i+1)系统就不会发生死锁

要使M-Smin(i)+1≧Smin(i+1)

只需M+1≧Smin(i+1)+ Smin(i)

只需M+1≧2Smin(i) (放缩Smin(i+1)>Smin(i))

只需Smin(i)≦(M+1)/2

因为M≧1 所以 2M≧M+1 即 M≧(M+1)/2 所以 Smin(i)≦(M+1)/2成立

所以系统不会发生死锁

相关文档
最新文档