1.何谓死锁?产生死锁的原因和必要条件是什么?
产生死锁的原因: (1) 竞争资源。 (2) 进程间推进顺序非法
生死锁的必要条件:(1) 互斥条件;(2) 请求和保持条件; (3) 不剥夺条件;(4) 环路等待条件
死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。
2.在解决死锁问题的几个方法中,哪种方法最易于实现?哪种方法使资源利用率最高?
解决/处理死锁的方法有预防死锁、避免死锁、检测和解除死锁,其中预防死锁方法最容易实现,但由于所施加的限制条件过于严格,会导致系统
资源利用率和系统吞叶量降低,而检测和解除死锁方法可是系统获得较好的资源利用率和系统吞吐量
3.某多道程序设计(multiprogramming)环境中,共有5个并发进程{P0、P1、P2、P3、P4}和3类资源{A=10、B=5、C=7}。系统运行的某时刻T0,各类资源的分配情况如下表所示:
1)请计算:各个进程还需要的资源数,即Needki=Claimki-Allocationki;(5分)
2)请分析:T0时刻系统的安全性(要求:如果确认安全,请你给出一个安全序列;否则,请你说明不安全的原因);(7分)
3)请分析:如果在T0时刻进程P2发出请求向量request2(1,0,1),那么系统能否实施此次资源分配(要求:无论能否实施此次资源分配,都请你说明相关的原因);(7分)
4)请分析:如果在P2发出请求向量(无论申请成功与否)、P1又发出请求向量request1(1,0,1),那么系统能否实施此次资源分配(要求:无论能否实施此次资源分配,都请你说明相关的原因)。(10分)
1.各进程还需要的资源数 (Needki = Claimki - Allocationki)
P0: A=7, B=4, C=3
P1: A=1, B=2, C=2
P2: A=6, B=0,C=0
P3: A=0, B=1,C=1
P4: A=4, B=3,C=1
2.T0时刻系统的安全性分析:
可用资源为 A=3,B=3,C=2.
我们可以满足P3的需求,然后释放其资源,使可用资源变为 A=5,B=4,C=3.
接着可以满足P1的需求,然后释放其资源,使可用资源变为 A=7,B=6,C=5.
继续这个过程,我们可以找到一个安全序列。如果找不到这样的序列,则系统不安全.
3.P2发出请求向量request2(1,0,1)的分析:
分后剩余资源将为 A=2,B=3.C=1.
我们需要检查是否仍然可以找到一个安全序列。如果找不到,则分配不安全
4.P2和P1发出请求向年后的分析:
再次检查分配这些请求资源后是否有安全序列。如果没有,则分配不安全