当前位置:网站首页>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
边栏推荐
- Object-C programming tips timer "suggestions collection"
- 【矩阵乘】【NOI 2012】【cogs963】随机数生成器
- 如何满足医疗设备对安全性和保密性的双重需求?
- Cantata9.0 | 全 新 功 能
- Implement secondary index with Gaussian redis
- [concept of network principle]
- [function recursion] do you know all five classic examples of simple recursion?
- Onespin | solve the problems of hardware Trojan horse and security trust in IC Design
- Postgresql数据库character varying和character的区别说明
- Codeforces Round #275 (Div. 2) C – Diverse Permutation (构造)[通俗易懂]
猜你喜欢

万字总结数据存储,三大知识点

C language helps you understand pointers from multiple perspectives (1. Character pointers 2. Array pointers and pointer arrays, array parameter passing and pointer parameter passing 3. Function point

不落人后!简单好用的低代码开发,快速搭建智慧管理信息系统

Small guide for rapid formation of manipulator (12): inverse kinematics analysis

Make this crmeb single merchant wechat mall system popular, so easy to use!

AADL inspector fault tree safety analysis module

Apifox interface integrated management new artifact

Tensorflow2. How to run under x 1 Code of X

Onespin | solve the problems of hardware Trojan horse and security trust in IC Design
MySQL约束之默认约束default与零填充约束zerofill
随机推荐
What are the official stock trading apps in the country? Is it safe to use
软件缺陷静态分析 CodeSonar 5.2 新版发布
I have to use my ID card to open an account. Is the bank card safe? I don't understand it
恶魔奶爸 C
上海交大最新《标签高效深度分割》研究进展综述,全面阐述无监督、粗监督、不完全监督和噪声监督的深度分割方法
[matrix multiplication] [noi 2012] [cogs963] random number generator
Ubuntu安装mysql8遇到的问题以及详细安装过程
【C语言】指针进阶---指针你真的学懂了吗?
MySQL storage expression error
Airiot helps the urban pipe gallery project, and smart IOT guards the lifeline of the city
开户必须往账户里面赚钱吗,资金安全吗?
ERROR: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your
CodeSonar如何帮助无人机查找软件缺陷?
国家正规的股票交易app有哪些?使用安不安全
UVA 11080 – Place the Guards(二分图判定)
浅解ARC中的 __bridge、__bridge_retained和__bridge_transfer
FTP steps for downloading files from Huawei CE switches
Is it safe to open an account of BOC shares in kainiu in 2022?
[concept of network principle]
凌云出海记 | 赛盒&华为云:共助跨境电商行业可持续发展