腾讯教育 教育 > 新闻站 > 新闻大滚动 > 正文

计算机软考软件设计师考试重点难点:死锁

2012年02月07日18:05考试吧我要评论(0)
字号:T|T

3、判断系统是否可能进入死锁状态

从上面的死锁解决方案来看,无论哪一种方式都不可避免的要增加系统的负担。而同时一个系统是否有可进入死锁状态受系统资源数量,需要使用该资源的进程数量等因素影响。若系统本不可能引起死锁,而我们采用了死锁解决方案,是很不合理的。所以,考试中常考到这样的题型:给出系统的资源数,以及需要使用该资源的进程数量等参数,让考生判断系统有无可能产生死锁。下面我们以例题的方式来说明如何解决这类问题。

例题1:

系统有3个进程:A、B、C。这3个进程都需要5个系统资源。如果系统有多少个资源,则不可能发生死锁。

解答:

在分析这个问题时,我们可以取一些简单的数据代入试题进行验证、分析,以得到相应的规律。

如:

(1)当系统资源数量为9时,若给A与B分别分配了4个资源,C分配了1个资源,则系统中的每个进程都存在资源不足的情况,而都不放手自己拥有的资源。不能正常运行完毕,发生死锁。

(2)当系统资源数量为12时,若给A、B、C各分配4个资源,则死锁。

(3)当系统资源数量为13时,无论如何分配,总有至少1个进程能得到5个资源,得到5个资源的进程可以正常运行完毕,而后将自己占用的资源分配给其它进程,所以这样能使所有进程运行完毕。

从上面的尝试,我们可以总结出一个规律:先给所有进程分配他们所需要的资源数减1个资源,然后系统如果能再剩余1个资源,则系统不会发生死锁。这样解答本题变得非常容易。

(5-1)*3+1=13。

例题2:

一台计算机有10台磁带机被m个进程竞争,每个进程最多需要三台磁带机,那么m至多为 时,系统没有死锁的危险。

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

解答

首先从m=6开始考察,首先每个进程分配1台,剩下的4台只能分配给4个进程,还有2个进程没有分配,如果已经分配了2台的4个进程需要3台的话,则系统就会死锁。同样,如果m=5,也会发生这种情况。当m=4时,每个进程可以分得2台,还有2个进程可分得3台,则可正常运行,运行完毕后可释放资源,从而不会死锁。在解这道题时有些学员提出“如果按照答案m=4,则这4个进程都是需要3台磁带机的话,共需要12台磁带机,这样还不会死锁?”。这种想法是错误的,因为并不是同时把所有进程都分配给足够的资源才能完成这些进程,可以是一个进程先执行完,释放完资源再执行另一个进程。

例如:4个进程中,每个进程分配2台磁带机,用去了8台。剩下2台,仍然可以满足两个进程,直到他们完成,释放他们暂用的磁带机。

推荐微博

换一换
注册微博
[责任编辑:laineyliu]
登录 (请登录发言,并遵守相关规定) 分享至: 腾讯微博
如果你对教育频道有任何意见或建议,请到交流平台反馈。到微博反馈
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

教育品牌

推广信息