当前位置:网站首页>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
边栏推荐
- Écrivez une liste de sauts
- 如何满足医疗设备对安全性和保密性的双重需求?
- MinGW MinGW-w64 TDM-GCC等工具链之间的差别与联系「建议收藏」
- C语言多角度帮助你深入理解指针(1. 字符指针2. 数组指针和 指针数组 、数组传参和指针传参3. 函数指针4. 函数指针数组5. 指向函数指针数组的指针6. 回调函数)
- What are the official stock trading apps in the country? Is it safe to use
- 上海交大最新《标签高效深度分割》研究进展综述,全面阐述无监督、粗监督、不完全监督和噪声监督的深度分割方法
- Optimization cases of complex factor calculation: deep imbalance, buying and selling pressure index, volatility calculation
- Lingyun going to sea | yidiantianxia & Huawei cloud: promoting the globalization of Chinese e-commerce enterprise brands
- 【C语言】指针进阶---指针你真的学懂了吗?
- 智能交通焕发勃勃生机,未来会呈现哪些巨变?[通俗易懂]
猜你喜欢
CodeSonar网络研讨会
Dachang classic pointer written test questions
Nebula importer data import practice
Small guide for rapid formation of manipulator (11): standard nomenclature of coordinate system
Mongodb learn from simple to deep
Tensorflow2. How to run under x 1 Code of X
How does codesonar help UAVs find software defects?
软件缺陷静态分析 CodeSonar 5.2 新版发布
智能软件分析平台Embold
【C语言】指针进阶---指针你真的学懂了吗?
随机推荐
Codesonar enhances software reliability through innovative static analysis
Klocwork code static analysis tool
软件缺陷静态分析 CodeSonar 5.2 新版发布
Small guide for rapid formation of manipulator (12): inverse kinematics analysis
Écrivez une liste de sauts
How to meet the dual needs of security and confidentiality of medical devices?
Lingyun going to sea | yidiantianxia & Huawei cloud: promoting the globalization of Chinese e-commerce enterprise brands
Codeforces round 296 (Div. 2) A. playing with paper[easy to understand]
POJ 3140 contents division "suggestions collection"
智能软件分析平台Embold
AADL Inspector 故障树安全分析模块
DataTable数据转换为实体
现在网上开户安全么?想知道我现在在南宁,到哪里开户比较好?
201215-03-19—cocos2dx内存管理–具体解释「建议收藏」
object-c编程tips-timer「建议收藏」
使用高斯Redis实现二级索引
Mysql子查询关键字的使用方式(exists)
数值法求解最优控制问题(〇)——定义
ISO 26262 - 基于需求测试以外的考虑因素
Helix QAC 2020.2新版静态测试工具,最大限度扩展了标准合规性的覆盖范围