操作系统 第四章 课后题答案 下载本文

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

解答:(1)

(2)系统出于安全状态,存在安全序列

(3)不会发生死锁,因为存在安全序列,进程按此顺序执行可保证不死锁。 (4)不可以接受新的请求,因为系统可用资源不足。(R2只有1个,而新请求P3需要2个)

4.考虑有一个共有150个存储单元的系统,已经如下分配给三个进程: 试确定下面新的请求是否安全。如果安全,请给出安全序列。

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

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成立 所以系统不会发生死锁