`
chriszeng87
  • 浏览: 717462 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

死锁产生的原因及四个必要条件

阅读更多

产生死锁的主要原因是:

1) 系统资源不足;

2) 进程运行推进的次序不合适;

3) 资源分配不当。

 

如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则
就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。
产生死锁的四个必要条件:

1) 互斥条件:一个资源一次只能被一个进程访问。

2) 请求与保持: 一个进程因请求资源而阻塞时,对已获得的资源保持不放。

3) 不可剥夺:进程已获得的资源,在未使用完之前,不得强行剥夺。

4) 循环等待:若干进程之间形成一种头尾相接的循环等待资源关系。

 

理解了死锁的原因,尤其是产生死锁的四个必要条件,就可以最大可能地避免、预防和
解除死锁。所以,在系统设计、进程调度等方面注意如何不让这四个必要条件成立,如何确
定资源的合理分配算法,避免进程永久占据系统资源。此外,也要防止进程在处于等待状态
的情况下占用资源。因此,对资源的分配要给予合理的规划。

分享到:
评论

相关推荐

    产生死锁的四个必要条件.doc

    产生死锁的四个必要条件

    ordinary-zhang#java#什么是死锁,死锁发生的四个必要条件,如何避免与预防死锁1

    1.什么是死锁 2.死锁产生的原因 3.产生死锁的四个必要条件: 4.死锁的避免与预防

    MSSQL死锁产生原因及解决方法

     二、 死锁产生的四个必要条件  互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放 请求...

    SQL Server死锁总结

    死锁的四个必要条件: 互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。 请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。 非剥夺条件(No pre-emption):已经分配的资源...

    哲学家进餐问题死锁的造成.cpp

    死锁的四个条件: (1) 互斥条件:一个资源每次只能被一个进程使用。 (2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 (3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行...

    4-死锁1

    2. 死锁特征分析—产生死锁的四个必要条件 3. 死锁处理方法 2. 死锁特征分析—产生死锁的四个必要条件 3. 死锁处理方法 2. 死锁特征分析—产生死锁的四

    mysql innodb死锁问题详解.docx

    产生死锁的四个必要条件 互斥条件: 一个资源只能被一个进程使用 请求和保持条件:进行获得一定资源,又对其他资源发起了请求,但是其他资源被其他线程占用,请求阻塞,但是也不会释放自己占用的资源。 不可剥夺...

    MSSQL产生死锁的根本原因及解决方法

    二、 死锁产生的四个必要条件 •互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕释放 •请求...

    SQL Server锁介绍及死锁原因

     产生死锁的四个必要条件:  (1) 互斥条件:一个资源每次只能被一个进程使用。  (2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。  (3) 不剥夺条件:进程已获得的资源,在末...

    操作系统期末考试试卷

    2.死锁预防是保证系统不进入死锁状态的静态策略,其解决方法是破坏产生死锁的四个必要条件之一。下列方法中哪一个破坏了“占有且申请”条件。( ) A.银行家算法 B. 一次性分配策略 C.剥夺资源法 D. 资源有序分配法

    深入浅出SQLServer中的死锁

    由这个简单的例子可以看出,发生死锁需要四个必要条件,如下:主体对于资源是独占的,图1中每条汽车道只能跑一队汽车,不能跑第二队。指主体已经保持至少一个资源,但又提出了新的资源请求,而该

    记一次公司仓库数据库服务器死锁过程及解决办法

    死锁的四个必要条件: 互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。 请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。 非剥夺条件(No pre-emption):已经分配的...

    课程设计:模拟银行家算法

    4、产生死锁的四个必要条件: 5 三、数据结构设计 8 四、算法的实现 9 1、初始化 9 2、银行家算法 9 3、安全性检查算法 10 4、各算法流程图 10 5、源程序清单 13 五、结束语 21 1、心得与体会: 21 2、实例: 21 六...

    (大题很值得做)2004级《操作系统》期末试题(A卷)1

    2. WINDOWS 2000系统的同步对象有、 、和 3. 引起死锁的四个必要条件中,①是不应破坏的,但对某些特殊的资源(如打印机),该条件可以通过②来破坏

    计算机操作系统复习题

    计算机操作系统,内含练习题 1. 在为多道程序所提供的可共享的系统资源不足时,可能出...3. 产生死锁的四个必要条件是:互斥、___、循环等待和不剥夺。 A.请求与阻塞B.请求与保持C.请求与释放D.释放与阻塞 答:B

    2012-2013-2 OS试卷B_带答案_1

    1.操作系统是控制应用程序的执行,并充当应用程序和计算机硬件之间的接口 5.进程从等待状态进入就绪状态可能是由于(C) 2.产生死锁的四个必要条件是__互斥条件

    计算机操作系统习题及答案1

    (1)为多道程序提供的可共享资源不足时,可能出现死锁 (2)采用资源剥夺法可以解除死锁,还可以采用 (3)发生死锁的必要条件有四个, (4)为多道程序提供的资源

    操作系统原理考试试卷A(含参考答案).doc

    一、单项选择题(本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。...死锁的所有必要条件 B.互斥条件 C.占有且等待条件 D.环路

    操作系统实验四银行家算法实验

    因行家算法是避免死锁的一种重要方法。通过编写一个模拟动态资源分配的银行家算法程序,进一步深入理解死锁、产生死锁的必要条件、安全状态等重要概念,并掌握避免死锁的具体实施方法

Global site tag (gtag.js) - Google Analytics