数据库以及线程发生死锁的原理及必要条件,如何避免死锁_数据库死锁预防_Trenson的博客-程序员信息网

技术标签: 操作系统  

产生死锁的原因主要是: 
(1) 因为系统资源不足。 
(2) 进程运行推进的顺序不合适。 
(3) 资源分配不当等。
必要条件:
(1)互斥条件:一个资源每次只能被一个进程使用。 
(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 
(3)不可剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。 
(4)循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
​避免死锁: 
死锁的预防是通过破坏产生条件来阻止死锁的产生,但这种方法破坏了系统的并行性和并发性。 
死锁产生的前三个条件是死锁产生的必要条件,也就是说要产生死锁必须具备的条件,而不是存在这3个条件就一定产生死锁,那么只要在逻辑上回避了第四个条件就可以避免死锁。 
避免死锁采用的是允许前三个条件存在,但通过合理的资源分配算法来确保永远不会形成环形等待的封闭进程链,从而避免死锁。该方法支持多个进程的并行执行,为了避免死锁,系统动态的确定是否分配一个资源给请求的进程。 
预防死锁:具体的做法是破坏产生死锁的四个必要条件之一。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/guojihua1234/article/details/41851597

智能推荐

Unity可视化脚本之——xNode【3】:定制自己的可视化脚本模块_dzj2021的博客-程序员信息网

一、需要哪些package需要xNode包二、xNode中的节点如何实现Update()和Start()类似的功能自定义节点的继承关系:【自定义节点】 -> 【MyNode】->【Node】->【ScriptableObject】因为继承自ScriptableObject,所以它没有Monobehaviour的Start()和Update()。实现的方法:写一个MonoBehaviour的脚本,在它的Start和Update中调用所有的Node中的自定义Start()和U

django+uwsgi+nginx - 错误:nginx:504 Gateway Time out_tmpbook的博客-程序员信息网

分析504 Gateway Time out原因是因为相关参数设置的不当,还是很容易解决的nginx和uwsgi整合时有三个参数可以用于设置超时时间:1.uwsgi_connect_timeout: 默认60秒,与uwsgi-server连接的超时时间,该值不能超过75秒.若在超时时间内未能成功连接则断开连接尝试2.uwsgi_read_timeout: 默认60秒,nginx等待uwsg

高并发系统限流-漏桶算法和令牌桶算法_令牌桶算法和漏桶算法_叮铃铃~的博客-程序员信息网

参考:http://www.cnblogs.com/LBSer/p/4083131.htmlhttps://blog.csdn.net/scorpio3k/article/details/53103239https://www.cnblogs.com/clds/p/5850070.htmlhttp://jinnianshilongnian.iteye.com/blog/2305117ht...

ZCU102开发 (1) 运行基于ubuntu文件系统的Linux_telantan的博客-程序员信息网

在ubuntu 14.04上使用GParted软件将SD卡分为两个区,一个为fat32 BOOT区,用于放boot.bin, Image, system.dtb文件另一个为ext4格式rootfs区,用于放文件系统        编译器做准备,armv8需要aarch64 toolchain,sudo apt-get install gcc-aa

php 获取移动端设备号,getDeviceId()获取设备号IMEI、MEID、ESN_DiaoGe668的博客-程序员信息网

网络请求的时候需要根据设备号id传参,但是服务端后台收到的有时候为空,服务端的存储就为1个0 。而手机设备号获取与手机本身注册的网相关本人经测试情况魅蓝note5、1:全网通、2张联通卡、获取结果为IMEI1的值。通过查询API调用getDeviceId()源码可知通过getDeviceId获取的为IMEI和MEID和ESN/*** Returns the unique device ID, fo...

计算机信息处理模块,计算机信息处理能力教程_xiangzi92的博客-程序员信息网

《计算机信息处理能力教程》是2010年人民邮电出版社出版的图书,作者是黄锡昌、杨家成、刘万援。本书[1]主要讲述了Windows XP系统软件、Office 2003常用办公软件以及计算机网络的应用。书名计算机信息处理能力教程作者黄锡昌,杨家成,刘万援类别工科出版社人民邮电出版社出版时间2010年9月1日页数324 页定价39.5 元开本16 开装...

随便推点

Ros强开指定首页,类似电信的ADSL强开指定首页,即push功能_weixin_34273046的博客-程序员信息网

######程序开始####################################################################### 程序名称:ROS强开首页(类似电信ADSL强开指定首页)# 程序版本:测试# 程 序 员:kuwin Email:[email protected]# 程序版权:免费软件(本程序可自由传播及修改,不必理...

sqllite数据库错误---试图写一个只读的数据库_sqllite readonly_dragonpeng2008的博客-程序员信息网

在windows7操作系统下,访问sqllite数据库,提示:"attempt to write a read-only database 试图写一个只读的数据库"错误System.Web.Services.Protocols.SoapException 服务器无法处理请求---------->System.Data.Sqlite.SQLiteException:  attempt

2015 前端生态发展回顾_weixin_34186931的博客-程序员信息网

引用苏宁前端架构师的一个总结作为开篇编程技术及生态发展的三个阶段最初的时候人们忙着补全各种API,代表着他们拥有的东西还很匮乏,需要在语言跟基础设施上继续完善然后就开始各种模式,标志他们做的东西逐渐变大变复杂,需要更好的组织了然后就是各类分层MVC,MVP,MVVM之类,可视化开发,自动化测试,团队协同系统等等,说明重视生产效率了,也就是所谓工程...

CI Weekly #5 | 微服务架构下的持续部署与交付_weixin_33726318的博客-程序员信息网

2019独角兽企业重金招聘Python工程师标准>>> ...

IDEA整合SSM框架_传说中的靖哥哥的博客-程序员信息网

一,环境准备    * IDEA开发工具    * JDK    * Tomcat    * Maven二,环境配置    * JDK和Maven配置HOME环境变量并引入Path路径,分别用java  -version和mvn -v验证    * Maven配置工厂路径和镜像路径(从阿里云服务器下载,速度较快)    -- 路径配置 ${MAVEN_HOME}\config\setting.xm...

【hd水题】hdoj1196 Lowest Bit_5detutu的博客-程序员信息网

Lowest BitProblem DescriptionGiven an positive integer A (1 <= A <= 100), output the lowest bit of A.For example, given A = 26, we can write A in binary form as 11010, so the lowest bit of ...

推荐文章

热门文章

相关标签