当前位置:网站首页>Deadlock conditions and preventive treatment [easy to understand]
Deadlock conditions and preventive treatment [easy to understand]
2022-07-07 21:04:00 【Full stack programmer webmaster】
Hello everyone , I meet you again , I'm the king of the whole stack .
The so-called deadlock : Two or more processes in the process of execution , A phenomenon of waiting for each other caused by competing for resources . If there is no external force , They will not be able to move forward . At this point, the system is said to be in a deadlock state or the system has produced a deadlock , These processes that are always waiting for each other are called deadlock processes . Because resource occupation is mutually exclusive , When a process requests resources , Make the relevant process without external assistance , You can never allocate the necessary resources to continue execution . This creates a special phenomenon deadlock .
Although the process is in the process of execution , Deadlock could happen , But the occurrence of deadlock must also have certain conditions , The occurrence of deadlock must meet the following four necessary conditions .
1) Mutually exclusive condition :
Refers to the exclusive use of resources allocated by the process , That is, a resource is occupied by only one process for a period of time . Suppose there are other processes requesting resources at this time , Then the requester can only wait , Until the process of taking possession of resources is completed and released .
2) Request and hold conditions :
Means that the process has kept at least one resource . But new resource requests were made , The resource is already occupied by other processes , At this time, the request process is blocked , However, they are not willing to let go of other resources they have obtained .
3) Conditions of non deprivation :
Refers to the resources obtained by the process , Before use , Can't be deprived of , It can only be released by itself when it is used up .
4) Loop waiting condition :
When a life and death lock is issued , There must be a process —— Circular chain of resources . That is, process set {P0,P1,P2,···,Pn} Medium P0 Waiting for one P1 Occupied resources .P1 Is waiting for P2 Occupied resources .…….Pn Waiting for has been P0 Occupied resources .
After a deadlock has occurred in the system , Deadlock should be detected in time , And take appropriate measures to release the deadlock . At present, there are four ways to deal with deadlocks :
1) Deadlock prevention .
This is a simple and intuitive method of prevention in advance .
By setting some restrictions . To destroy one or more of the four necessary conditions for deadlock , To prevent deadlock . Deadlock prevention is an easy method , Has been widely used . However, the restrictions imposed are often too strict , It may lead to the reduction of system resource utilization and system throughput .
2) Avoid deadlock .
This method belongs to the strategy of prevention in advance . However, it does not need to take various restrictive measures in advance to destroy the four necessary conditions for deadlock , But in the process of dynamic allocation of resources , Some way to prevent the system from entering unsafe state , So as to avoid deadlock .
3) Detect deadlock .
Such an approach does not require any restrictive measures in advance . It is not necessary to check whether the system has entered the unsafe area , This method allows the system to deadlock during execution .
But it can be detected by the detection mechanism set by the system , Timely detect the occurrence of deadlock , And accurately determine the processes and resources related to deadlock . Then take appropriate measures , Removed from the deadlocks that have occurred in the system .
4) Deadlock Relieving .
This is a measure matched with deadlock detection . When a deadlock is detected in the system . Process must be freed from deadlock .
The commonly used implementation method is to undo or suspend some processes , In order to recycle some resources , Then allocate these resources to the blocked process . Make it ready , To carry on .
Deadlock detection and removal measures , It is possible for the system to achieve better resource utilization and throughput , But it is also the most difficult to achieve .
Publisher : Full stack programmer stack length , Reprint please indicate the source :https://javaforall.cn/116453.html Link to the original text :https://javaforall.cn
边栏推荐
- ERROR: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your
- Validutil, "Rethinking the setting of semi supervised learning on graphs"
- 死锁的产生条件和预防处理[通俗易懂]
- 论文解读(ValidUtil)《Rethinking the Setting of Semi-supervised Learning on Graphs》
- Codesonar Webinar
- MySQL约束之默认约束default与零填充约束zerofill
- 复杂因子计算优化案例:深度不平衡、买卖压力指标、波动率计算
- sqlHelper的增删改查
- 凌云出海记 | 易点天下&华为云:推动中国电商企业品牌全球化
- 浅解ARC中的 __bridge、__bridge_retained和__bridge_transfer
猜你喜欢
Small guide for rapid formation of manipulator (12): inverse kinematics analysis
OneSpin 360 DV新版发布,刷新FPGA形式化验证功能体验
Airiot helps the urban pipe gallery project, and smart IOT guards the lifeline of the city
Optimization cases of complex factor calculation: deep imbalance, buying and selling pressure index, volatility calculation
SQL注入报错注入函数图文详解
Tensorflow2. How to run under x 1 Code of X
CodeSonar网络研讨会
不落人后!简单好用的低代码开发,快速搭建智慧管理信息系统
CodeSonar如何帮助无人机查找软件缺陷?
Intelligent software analysis platform embold
随机推荐
Micro service remote debug, nocalhost + rainbow micro service development second bullet
uva 12230 – Crossing Rivers(概率)「建议收藏」
AADL inspector fault tree safety analysis module
C语言 整型 和 浮点型 数据在内存中存储详解(内含原码反码补码,大小端存储等详解)
DataTable数据转换为实体
ERROR: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your
浅解ARC中的 __bridge、__bridge_retained和__bridge_transfer
Mahout-Pearson correlation的实现
万字总结数据存储,三大知识点
Can Huatai Securities achieve Commission in case of any accident? Is it safe to open an account
UVA 11080 – Place the Guards(二分图判定)
Measure the height of the building
[function recursion] do you know all five classic examples of simple recursion?
Klocwork code static analysis tool
margin 等高布局
Mysql子查询关键字的使用方式(exists)
awk处理JSON处理
最新版本的CodeSonar改进了功能安全性,支持MISRA,C ++解析和可视化
私募基金在中國合法嗎?安全嗎?
Codesonar enhances software reliability through innovative static analysis