当前位置:网站首页>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

原网站

版权声明
本文为[Full stack programmer webmaster]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/188/202207071843026420.html