当前位置:网站首页>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
边栏推荐
- 开户必须往账户里面赚钱吗,资金安全吗?
- Is it safe to open an account of BOC shares in kainiu in 2022?
- 现在网上开户安全么?想知道我现在在南宁,到哪里开户比较好?
- Don't fall behind! Simple and easy-to-use low code development to quickly build an intelligent management information system
- 国家正规的股票交易app有哪些?使用安不安全
- 智能交通焕发勃勃生机,未来会呈现哪些巨变?[通俗易懂]
- FTP steps for downloading files from Huawei CE switches
- OneSpin | 解决IC设计中的硬件木马和安全信任问题
- [concept of network principle]
- Implement secondary index with Gaussian redis
猜你喜欢
上海交大最新《标签高效深度分割》研究进展综述,全面阐述无监督、粗监督、不完全监督和噪声监督的深度分割方法
万字总结数据存储,三大知识点
Is embedded system really safe? [how does onespin comprehensively solve the IC integrity problem for the development team]
神兵利器——敏感文件发现工具
程序猿赚的那点钱算个P啊!
OneSpin | 解决IC设计中的硬件木马和安全信任问题
ISO 26262 - 基于需求测试以外的考虑因素
【OpenCV 例程200篇】223. 特征提取之多边形拟合(cv.approxPolyDP)
Lex & yacc of Pisa proxy SQL parsing
Static analysis of software defects codesonar 5.2 release
随机推荐
201215-03-19—cocos2dx内存管理–具体解释「建议收藏」
Lingyun going to sea | yidiantianxia & Huawei cloud: promoting the globalization of Chinese e-commerce enterprise brands
Mysql子查询关键字的使用方式(exists)
Helix QAC 2020.2新版静态测试工具,最大限度扩展了标准合规性的覆盖范围
【矩阵乘】【NOI 2012】【cogs963】随机数生成器
Write a jump table
The latest version of codesonar has improved functional security and supports Misra, c++ parsing and visualization
Static analysis of software defects codesonar 5.2 release
HDU4876ZCC loves cards(多校题)
论文解读(ValidUtil)《Rethinking the Setting of Semi-supervised Learning on Graphs》
Mahout-Pearson correlation的实现
Codeforces 474 F. Ant colony
MySQL storage expression error
Codesonar Webinar
Intelligent transportation is full of vitality. What will happen in the future? [easy to understand]
Data sorting in string
【C语言】指针进阶---指针你真的学懂了吗?
Codeforces Round #275 (Div. 2) C – Diverse Permutation (构造)[通俗易懂]
Unity3d 4.3.4f1执行项目
单词反转实现「建议收藏」