什么是死锁?如何避免发生死锁?

题目
问答题
什么是死锁?如何避免发生死锁?
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下述____不是死锁处理策略。

A、时间溢出

B、死锁避免

C、死锁预防

D、死锁检测


正确答案:B

第2题:

系统允许部分进程发生死锁,通过定时运行资源分析程序并报告是否已有死锁的方法称为

A.死锁预防

B.死锁避免

C.死锁检测

D.死锁解除


正确答案:C

第3题:

不让死锁发生的策略可以分为静态和动态两种,死锁避免属于()策略。


参考答案:动态

第4题:

死锁的发生是坏事还是好事?试说明理由。如何解除死锁状态?


正确答案: 在DBS运行时,死锁状态是我们不希望发生的,因此死锁的发生本身是一件坏事。但是坏事可以转换为好事。如果我们不让死锁发生,让事务任意并发做下去,那么有可能破坏DB中的数据,或用户读了错误的数据。从这个意义上讲,死锁的发生是一件好事,能防止错误的发生。
在发生死锁后,系统的死锁处理机制和恢复程序就能起作用,抽取某个事务作为牺牲品,把它撤销,做ROLLBACK操作,使系统有可能摆脱死锁状态,继续运行下去。

第5题:

资源的静态分配算法在解决死锁问题中是用于()

  • A、 防止死锁
  • B、 避免死锁
  • C、 检测死锁
  • D、 解除死锁

正确答案:A

第6题:

请给出预防死锁和检测死锁的方法。若检测发生死锁,应如何解除死锁?


正确答案:预防死锁通常有以下两种方法: ①一次封锁法。就是要求每个事务必须一次将所有要使用的数据全部加锁。否则该事务不能继续执行; ②顺序封锁法是预先对数据对象规定一个封锁顺序。所有事务都按这个顺序实行封锁。检测死锁发生的一种方法是选择一个处理死锁代价最小的事务将其撤销释放此事务持有的所有锁使其他事务得以继续运行下去。
预防死锁通常有以下两种方法: ①一次封锁法。就是要求每个事务必须一次将所有要使用的数据全部加锁。否则该事务不能继续执行; ②顺序封锁法,是预先对数据对象规定一个封锁顺序。所有事务都按这个顺序实行封锁。检测死锁发生的一种方法是选择一个处理死锁代价最小的事务,将其撤销,释放此事务持有的所有锁,使其他事务得以继续运行下去。 解析:在IN子查询中,内层查询只处理一次,得到一个结果集,再依次处理外层查询。 解除死锁问题有两类方法:一类方法是采用一定措施来预防死锁的发生;另一类方法是允许发生死锁。然后采用一定手段定期诊断系统中有无死锁,若有则解除之。

第7题:

银行家算法是一种()算法。

A.死锁检测
B.死锁解除
C.死锁预防
D.死锁避免

答案:D
解析:
银行家算法是一个避免死锁的著名算法。

第8题:

银行家算法是一种()算法。

A、死锁预防

B、死锁避免

C、死锁解除

D、死锁检测


参考答案:B

第9题:

对资源采用按序分配策略能达到()的目的。

  • A、防止死锁
  • B、避免死锁
  • C、检测死锁
  • D、解除死锁

正确答案:A

第10题:

死锁产生的必要条件是什么?死锁的预防、避免和检测各有什么不同?各举一种相应的方法。


正确答案: 死锁产生的必要条件有:
1.所涉及的资源是非共享的;
2.进程在等待新资源时,继续占用已分配到的资源;
3.一个进程占有的资源不能被别的进程强行抢占;
4.一个进程获得的资源同时被另一个进程所请求,从而形成一个进程的循环链。
死锁的预防是研究如何破坏产生死锁的必要条件之一,从而达到不使死锁发生地目的。死锁的避免与死锁的预防区别在于,死锁的预防是严格破坏形成死锁的必要条件之一,使得死锁不在系统中出现。预防方法之一,采用假脱机技术将非共享设备变成共享设备来实现。
而死锁的避免并不严格限制必要条件的存在,因为必要条件存在并不一定产生死锁。而进程推进顺序不当,也可以导致系统发生死锁,因此死锁的避免是考虑万一当死锁有可能出现时,就小心地避免这种情况的最终发生。避免方法有采用相应的银行算法和方法。死锁的检测和恢复,这是一种变通的方法,它允许死锁的发生,但能在适当时间检测出来,并设法进行恢复。利用化简进程-资源有向图的方法来检测系统在某一特定状态时是否处于死锁状态。