根据几个例题学会解答资源死锁取值问题

根据几个例题学会解答资源死锁取值问题

1、某系统中有11台打印机,N个进程共享打印机资源,每个进程要求3台打印机。当N的取值不超过(B)时,系统不会发生死锁。

A. 4 B. 5 C. 6 D. 7

解答:考虑最坏情况,当每个进程都获得了2台打印机时,这时只需再由有1台打印机就可以保证所有进程都能完成,不会发生死锁,所以11 - 2N >= 1, 由此得知n <= 5

2、若系统中有5台绘图仪,有多个进程需要使用两台。规定每个进程一次仅允许申请一台,则最多允许(D)个进程参与竞争,而不会发生死锁。

A. 5 B. 2 C. 3 D. 4

解答:在系统中有m个进程,都需要2个同类资源的情况下,假如此时每个进程都获得了1个绘图仪,那么当5 - m >= 1时, m <= 4,所以最多允许4个进程参与竞争,不会发生死锁。

3、(2009年统考真题)某计算机系统中有8台打印机,有K个进程竞争使用,每个进程最多需要3台打印机,该系统可能会发生死锁的K的最小值是(C)

A. 2 B. 3 C. 4 D. 5

解答:假设K = 3,3个进程共享8台打印机,每个进程最多可以请求3台打印机,若3个进程都分别得到2台打印机,系统还剩下2台打印机,接下去无论那个进程申请打印机,都可以得到满足,3个进程都可以顺利执行完毕,这种情况下不会产生死锁。假设K = 4,4个进程共享8台打印机,都得不到满足,使其互相等待,可能会发生死锁。

4、(2014年统考真题)某系统有n台互斥使用的同类设备,3个并发进程分别需要3、4、5台设备,可确保系统不发生死锁的设备数n最小为(B)

A. 9 B. 10 C. 11 D. 12

解答:这种题目只需要分配给每个进程的资源数比它所需要的资源数的最大值少一个即可观察出结果。3个并发进程分别需要3、4、5台设备,设第一个进程分配2台,第二个进程分配3台,第三天进程分配4台,总共分配出去(3 - 1) + (4 - 1)+ (5 + 1) = 9台设备。这种情况下,3个进程均无法继续执行下去,发生死锁。当系统中再增加1台设备,也就是总共10台设备时,这最后1台设备分配给任意一个进程都可以顺利执行完成,因此保证系统不发生死锁的最小设备数为10.

总结:这种类型的题通常数字不大,可以凭经验尝试出答案,这样会快一些,此处我们还可以根据对应的计算公式,便于大家加深理解。假设n为每个进程所需要的资源数,m为进程数,A为系统的资源数,则满足(n - 1) * m >= A的最小整数m即为可能产生死锁的最小进程数。该公式同样可以用于求每个进程需要多少资源时可能会产生死锁。

该公式可以这样理解:当所有进程都差一个资源就可以执行,此时系统中所有资源都已经分配,因此死锁。

A - (n - 1) * m >= 1

posted @ 2021-04-24 16:59  JK~  阅读(3980)  评论(0编辑  收藏  举报