第三章 死锁 复习题
一、单项选择题
1.避免死锁的一个著名的算法是( B)。
A.先入先出法; B.银行家算法; C.优先级算法; D.资源按序分配法。 2.计算机系统产生死锁的根本原因是( D )。
A.资源有限 B.进程推进顺序不当 C.系统中进程太多 D.A和 B 3.资源预先分配策略可以实现死锁的( A )。
A.预防 B.避免(在资源的动态分配过程中,采取的一种方法) C.检测 D.恢复
4.若系统中有5台绘图仪,有多个进程均需要使用2台,规定
每个进程一次仅允许申请一台,则至多允许( )个进程参于竞争,而不会发生死锁。
A、5 B、2 C、3 D、4 5.产生系统死锁的原因可能是由于( C)。
A、进程释放资源 B、一个进程进入死循环
C、多个进程竞争资源出现了循环等待 D、多个进程竞争共享型设备 6. 两个进程争夺同一个资源( B )。
A.一定死锁 B.不一定死锁 C.不会死锁 D.以上说法都不对
7. 解决死锁的途径是( D )。
A. 立即关机排除故障 B. 立即关机再重新开机
C. 不要共享资源,增加独占资源 D. 设计预防死锁方法,运行检测并恢复
8. 进程P1使用资源情况:申请资源S1,申请资源S2,释放
资源S1;进程P2使用资源情况:申请资源S2,申请资源S1,释放资源S2,系统并发执行进程P1,P2,系统将( B )。 A.必定产生死锁 B. 可能产生死锁
C.会产生死锁 D. 无法确定是否会产生死锁 9. 两个进程同时运行并希望使用对方所占用的资源,而又都不
肯释放所占用资源的情形被称做( A )。 A 死锁 B 循环等待 C 互斥 D 银行家算法
10. ( A )阐明了\如果出现死锁,忽略它,就当自己完全不知道发生死锁一样\。
A驼鸟算法 B 银行家算法 C 循环等待 D DRAG
11. (不安全状态)意味着资源分配会导致死锁,而(安全状态)意味
着可以避免死锁。
A 安全状态,不安全状态 B 不安全状态,安全状态 C 有用状态,,无用状态 D 主要状态,次要状态 二、判断题
1.系统发生死锁时,其资源分配图中必然存在环路。因此,如
果资源分配图中存在环路,则系统一定出现死锁。 (错) 存在环路可能发生死锁。
2、死锁是指两个或多个进程都处于互相等待状态而无法继续工
作。 (对)
3、若系统中并发运行的进程和资源之间满足”互斥使用、保持和等待、非剥夺性和循环等待”,则可判定系统中发生了死锁;(错) 这是死锁的必要条件
4、在对付死锁的策略中,解除死锁通常都是和检测死锁配套使用; (对)
5、在死锁的解决方法中,由于避免死锁采用静态分配资源策略,所以对资源的利用率不高。 (错)
6、在分配共享设备和独占设备时,都可能引起死锁. (错) 7、安全状态意味着存在死锁 (错) 8、死锁与程序的死循环一样。 (错) 三、填空题
1. 产生死锁的必要条件是_互斥条件,___请求和保持_________,
____不可抢占条件___________,__循环等待条件
_________________。
2. 破坏“循环等待”条件,通常可采用___________________。
3. 在实际使用中,为了操作系统的安全和可靠,往往采用死锁的________,________和________的混合策略,这样既可保证整个系统不出现死锁,又可以尽可能地提高资源利用率.
4. 检测死锁后可采用剥夺进程占有的资源,________和________等办法来解除死锁. 四、问答题
1. 简述死锁的预防和死锁的避免的区别。 参考答案:
预防死锁的方法是使死锁发生的四个必要条件中的第2、3、4条件之一不能成立,如:破坏“占有且等待”条件、破坏“非抢占”条件、破坏“循环等待”条件。为预防死锁所施加的限制条件较严格,往往会影响进程的并发执行。
在避免死锁方法中,把系统的状态分为安全状态和不安全状态,只要能使系统始终处于安全状态,便可避免发生死锁。为避免死锁所施加的限制条件较宽松,有利于进程的并发执行,获得令人满意的系统性能。
2. 试说明资源的静态分配策略能防止死锁的原因。
3. 某系统中有10台打印机,有三个进程P1,P2,P3分别需要8台,7台和4台。若P1,P2,P3已申请到4台,2台和2台。试问:按银行家算法能安全分配吗?请说明分配过程。 4. 在银行家算法中,若出现下述资源分配情况:
Process Allocation Need Available
P0 P1 P2 P3 P4
0032 1000 1354 0332 0014
0012
1750 2356 0652 0656
1622
试问:(1) 该状态是否安全?
(1) 若进程P2提出请求Request(1,2,2,2)后,
答案:
(1)用安全性算法分析该状态:
Process work Need Allocation work+ Allocation finish P0 P3 P4 P1 P2
1622
1654 1986
0012
0032 1654 true
系统能否将资源分配给它?
0652 0332 1986 true 0656 1750
0014 1000 1354
199(10) true 299(10) true 3(12)(14)(14) true
199(10)
299(10) 2356
有安全序列(P0,P3,P4,P1,P2),该状态是安全的
(2)P2请求资源(1,2,2,2);系统按银行家算法检查,
∵ Request2(1,2,2,2)? Need2(2,3,5,6);
Request2(1,2,2,2) ? Available(1,6,2,2); ∴ 系统暂时先假定可为P2分配资源,并修改有关数据
Process Allocation Need Available P0 P1
0032 1000
0012 1750
0400