参考答案和解析
正确答案:一个事务若申请锁未被批准,则需等待其它事务释放锁。当事务之间出现循环等待时,如果不加干预,则会一起等待下去,从而产生死锁。常见的预防死锁的三种方法如下:
(1)要求每一个事务必须同时封锁所要使用的全部数据。
(2)对所有数据对象规定一个封锁的次序,要求所有事务必须按照这个次序封锁数据对象。
(3)当事务申请锁未被批准时,不等待加锁而是让一些事务回滚重新执行。
更多“简述产生死锁的原因以及预防死锁的三种方法。”相关问题
  • 第1题:

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


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

  • 第2题:

    解决死锁的方法有多种,通过银行家算法来解决死锁的方法称为

    A.死锁预防

    B.死锁预防

    C.死锁检测

    D.死锁解除


    正确答案:B

  • 第3题:

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


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

  • 第4题:

    解决死锁有多种方法,一次分配所有资源来解决死锁的方法称为()。

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

    正确答案:A

  • 第5题:

    预防死锁方法是破坏产生死锁的必要条件?


    正确答案: (1)摈弃请求和保持条件。采用静态分配方案,一次性地分配给进程所请求的全部资源。进程运行过程中不可再请求新资源。
    (2)摈弃不剥夺条件。采用动态分配方案,进程运行中可以请求新资源。若进程请求资源不能满足时,就应使其释放已占有的资源。
    (3)摈弃环路等待条件。采用动态分配方案,要求进程请求资源时,按资源序号递增(或递减)顺序提出。
    (4)摈弃不可剥夺条件。利用Spooling系统将独享设备改造成共享设备。

  • 第6题:

    什么叫死锁?简述预防的方法


    正确答案: (1)两个或多个事务都已封锁了一些数据对象,然后又都请求对已被其他事务封锁的数据对象加锁,出现永久循环等待其它事务释放资源的现象称为死锁。
    (2)预防死锁:破坏产生死锁的条件,预防死锁的发生,常用方法有一次封锁法和顺序封锁法。一次封锁法:要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。存在的问题:降低系统并发度;难于事先精确确定封锁对象。顺序封锁法:预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。存在的问题是维护成本大;难以实现;。

  • 第7题:

    解决死锁的方法有多种,通过银行家算法来解决死锁的方法称为()

    • A、死锁预防
    • B、死锁预防
    • C、死锁检测
    • D、死锁解除

    正确答案:B

  • 第8题:

    什么东西是死锁?请给出预防死锁的若干方法。


    正确答案: 在数据库中,产生死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求已被其他事务封锁的数据加锁,从而出现死等待。
    防止死锁的发生其实就是要破坏产生死锁的条件。预防死锁通常有两种方法:
    (1)一次封锁法
    要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。
    (2)顺序封锁法
    预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。不过,预防死锁的策略不大适合数据库系统的特点。

  • 第9题:

    简述解决死锁问题的三种方法。


    正确答案: ①死锁的防止。系统按预定的策略为进程分配资源,这些分配策略能使死锁的四个必要条件之一不成立,从而使系统不产生死锁。
    ②死锁的避免。系统动态地测试资源分配情况,仅当能确保系统安全时才给进程分配资源。
    ③死锁的检测。对资源的申请和分配不加限制,只要有剩余的资源就呆把资源分配给申请者,操作系统要定时判断系统是否出现了死锁,当有死锁发生时设法解除死锁。

  • 第10题:

    问答题
    简要回答在多道程序系统中死锁的概念,以及死锁产生的原因。

    正确答案: 所谓死锁,就是两个或者多个进程因为竞争资源而造成的一种僵局,使得各进程等候着永远也不能成立的条件,在无外力的作用下,这些等待进程永远不可能向前推进。死锁产生的原因:竞争资源、进程推进顺序不当。
    解析: 暂无解析

  • 第11题:

    问答题
    预防死锁方法是破坏产生死锁的必要条件?

    正确答案: (1)摈弃请求和保持条件。采用静态分配方案,一次性地分配给进程所请求的全部资源。进程运行过程中不可再请求新资源。
    (2)摈弃不剥夺条件。采用动态分配方案,进程运行中可以请求新资源。若进程请求资源不能满足时,就应使其释放已占有的资源。
    (3)摈弃环路等待条件。采用动态分配方案,要求进程请求资源时,按资源序号递增(或递减)顺序提出。
    (4)摈弃不可剥夺条件。利用Spooling系统将独享设备改造成共享设备。
    解析: 暂无解析

  • 第12题:

    问答题
    简述解决死锁问题的三种方法。

    正确答案: ①死锁的防止。系统按预定的策略为进程分配资源,这些分配策略能使死锁的四个必要条件之一不成立,从而使系统不产生死锁。
    ②死锁的避免。系统动态地测试资源分配情况,仅当能确保系统安全时才给进程分配资源。
    ③死锁的检测。对资源的申请和分配不加限制,只要有剩余的资源就呆把资源分配给申请者,操作系统要定时判断系统是否出现了死锁,当有死锁发生时设法解除死锁。
    解析: 暂无解析

  • 第13题:

    解决死锁有多种方法,一次分配所有资源来解决死锁的方法称为()。

    A.死锁预防

    B.死锁避免

    C.死锁检测

    D.死锁解除


    参考答案:A

  • 第14题:

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

    A.死锁预防

    B.死锁避免

    C.死锁检测

    D.死锁解除


    正确答案:C

  • 第15题:

    叙述数据库中死锁产生的原因和解决死锁的方法。


    正确答案: 死锁产生的原因:
    封锁可以引起死锁。比如事务T1封锁了数据A,事务T2封锁了数据B。T1又申请封锁数据B,但因B被T2封锁,所以T1只能等待。T2又申请封锁数据A,但A已被T1封锁,所以也处于等待状态。这样,T1和T2处于相互等待状态而均不能结束,这就形成了死锁。解决死锁的常用方法有如下三种:
    (1)要求每个事务一次就要将它所需要的数据全部加锁。
    (2)预先规定一个封锁顺序,所有的事务都要按这个顺序实行封锁。
    (3)允许死锁发生,当死锁发生时,系统就选择一个处理死锁代价小的事务,将其撤消,释放此事务持有的所有的锁,使其他事务能继续运行下去。

  • 第16题:

    系统允许发生部分死锁,一旦发现有死锁进程,则通过杀死死锁进程来解决死锁问题的方法称为()。

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

    正确答案:D

  • 第17题:

    简述预防死锁通常有两种方法。


    正确答案: 预防死锁通常有两种:
    一次封锁法和顺序封锁法。
    一次封锁法:
    一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。一次封锁法虽然可以有效地防止死锁的发生,但每次要就将以后用到的全部数据加锁,从而降低了系统的并发度。
    顺序封锁法:顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。

  • 第18题:

    当系统采用资源有序分配方法来预防死锁时,破坏了产生死锁的四个必要条件中的(),而采用()方法预防死锁时可以破坏产生死锁的四个必要条件中的保持和等待条件。


    正确答案:环路条件;静态资源分配

  • 第19题:

    预防死锁的论述中,()条是正确的论述。

    • A、由于产生死锁的基本原因是系统资源不足,因而预防死锁的有效方法,是根据系统规模,配置足够的系统资源。
    • B、由于产生死锁的另一种基本原因是进程推进顺序不当,因而预防死锁的有效方法,是使进程的推进顺序合法。
    • C、因为只要系统不进入不安全状态,便不会产生死锁,故预防死锁的有效方法,是防止系统进入不安全状态。
    • D、可以通过破坏产生死锁的四个必要条件之一或其中几个的方法,来预防发生死锁。

    正确答案:D

  • 第20题:

    简要回答在多道程序系统中死锁的概念,以及死锁产生的原因。


    正确答案: 所谓死锁,就是两个或者多个进程因为竞争资源而造成的一种僵局,使得各进程等候着永远也不能成立的条件,在无外力的作用下,这些等待进程永远不可能向前推进。死锁产生的原因:竞争资源、进程推进顺序不当。

  • 第21题:

    单选题
    系统允许发生部分死锁,一旦发现有死锁进程,则通过杀死死锁进程来解决死锁问题的方法称为()。
    A

    死锁预防

    B

    死锁避免

    C

    死锁检测

    D

    死锁解除


    正确答案: C
    解析: 暂无解析

  • 第22题:

    填空题
    当系统采用资源有序分配方法来预防死锁时,破坏了产生死锁的四个必要条件中的(),而采用()方法预防死锁时可以破坏产生死锁的四个必要条件中的保持和等待条件。

    正确答案: 环路条件,静态资源分配
    解析: 暂无解析

  • 第23题:

    问答题
    什么叫死锁?简述预防的方法

    正确答案: (1)两个或多个事务都已封锁了一些数据对象,然后又都请求对已被其他事务封锁的数据对象加锁,出现永久循环等待其它事务释放资源的现象称为死锁。
    (2)预防死锁:破坏产生死锁的条件,预防死锁的发生,常用方法有一次封锁法和顺序封锁法。一次封锁法:要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。存在的问题:降低系统并发度;难于事先精确确定封锁对象。顺序封锁法:预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。存在的问题是维护成本大;难以实现;。
    解析: 暂无解析