Deadlock, Deadlock is what? if two and more processes are waiting on happening of some event but that event doesn't happen that is called the deadlock and those two processes are in the deadlock state means अगर एक simple से example से समझा जाए तो let's say कि I want to open an account in a bank मैं bank में गया and bank personal से बोल रहा हूँ कि I want to open an account but that person is saying कि first you have to deposit this minimum amount then we will open the account बट मैं क्या बोल रहा हूँ कि पहले मैं account open करवाओंगा after that after that if I want I can submit the money. But that is what a deadlock situation. क्योंकि मैं क्या बोल रहा हूँ कि definitely I will give the money but पहले account open करो.
But bank personal क्या कह रहे हैं कि पहले आप money deposit करो हमारे पास, then we will open the account. तो both are waiting on happening of some event. But वो event occur नहीं होगा, that is what the deadlock situation.
Let's say with one more example like there are two cars A and B, two drivers are driving that car, A is saying that I am on the right direction, he is moving towards this direction. And at the same time some B person that is also moving towards A. So let's say that B is moving wrong side. So it happens in India normally, that like I as a A, I am feeling that I am going in my direction, but B is also thinking that my direction is also this.
So what will happen in this situation? Both are waiting for some event. What is event?
A कह रहा है कि मेरे को इस direction में जाना है, towards this direction. B saying मेरे को इस direction में जाना है, but कैसे जाएंगे? या तो A को गाड़ी पीछे करनी पड़ेगी, or B को car पीछे करनी पड़ेगी, but क्यों करेंगे?
Ego भी कोई चीज है, so that's why neither A will remove the car, neither B will remove it. So that is what a kind of deadlock situation. This situation is known as...
deadlock situation, यह हम technical way से बात करें, तो synchronization में, synchronization में भी हमने deadlock के बारे में बात किया था, जैसे दो semaphores है, S1 and S2, एक process है, उस process को दो semaphore चाहिए, S1 and S2, zoom it, and there is one more process, P2, उसको चाहिए S2 and S1, so let's say कि P1 has taken the semaphore S, and waiting for S2, and P2 is having the semaphore S2 and waiting for S1, so that is what again called a deadlock situation, because P1 got one semaphore S1, but S2 didn't get, why didn't S2 get? Maybe because of sleep, it could be that it got pre-empted here, so P2 got S2, but as soon as S1 got it, it also got sleep, means again control near P1, तो P1 S1 को लेके बैठा है और बोल रहा है कि मेरे को S2 चाहिए P2 S2 को लेके बैठा है और बोल रहा है मेरे को S1 चाहिए तो both are waiting on happening of some event वो event happen क्या है कि P1 को S2 मिल जाए P2 को S1 मिल जाए but मिलेगा ही नहीं because P1 ने S1 को down कर दिया P2 ने S2 को down कर दिया both are in the blocked state अब इनको unblock कौन करेगा कोई भी नहीं that is called deadlock situation. अगर एक simple example से देखते हैं, like there is a resource, resource R1 and R2, two resources, two processes, P1 and P2. Let's say कि R1 is allocated to P1, this line is showing कि P1 has taken R1 and P1 is saying कि I need R2 because P1 is requesting for the R2 and R2 is held by P2 means R2 call लेके बैठा है P2, and P2 is saying I need R1 तो this situation is what? this situation is a kind of deadlock, it is not exactly a deadlock, अभी इसको हम deadlock नहीं बोल सकते, क्यों नहीं बोल सकते, अभी आपको clear हो जाएगा यहाँ पे हम क्या बोल रहे हैं कि P1 एक resource को लेके बैठा हुआ है R1 को P1 R1 को use कर रहा है but कह रहा है कि मैं execute तब हूँगा I will get execute if I get R2 P1 is saying I am having R2 but please give me R2 if you give R2 to me then I will get execute but R2 is already taken by P2 R2 is already taken by P2, this is, R2 is already taken by P2.
P2 और P2 is also saying I will get execute but just give me R1 because it is requesting for R but नहीं मिलेगा, क्यों? क्योंकि P1 execute ही नहीं होगा, P1 execute कब होगा? जब उसको R2 मिल जाएगा, और वो R1 को लेके बैठा हुआ है, लेकिन R2 जब उसको मिल जाएगा, एक्जिक्यूट हो जाएगा, और P2 कब एक्जिक्यूट होगा, जब उसको R1 मिलेगा, लेकिन R1 उसको मिलेगा ही नहीं, बिकॉज R1, P1 लेके बैठा है, और P1 को R2 नही आटू नहीं मिलेगा because आटू को P2 लेके hold करके बैठा हुए, तो means this is what a kind of deadlock situation. But इसको अभी deadlock नहीं बोल सकते because deadlock के लिए there are 4 necessary conditions. The conditions are mutual exclusion, no preemption, hold and weight and circular weight.
These four are necessary conditions for the deadlock. These four are necessary conditions. यह प्रभावित निवान निवान निवान नि� exclusive में means ऐसा नहों कि उस resource को एक से ज्यादा process भी use कर सकते हैं एक ही time पर like a printer जैसे अगर एक process है वो printer को use कर रहा है मतलब एक process printer को use करके print कर रहा है कुछ और उसी time पे एक और process आ गया, तो P1 जो पहला process है वो pre-empt नहीं होगा, मतलब वो stop नहीं होगा वहाँ पे, ऐसा नहीं कि P2 भी अपना काम बीच में कर रहा है, मतलब P2 के page भी print हो रहे हैं, P1 process के page भी print हो रहे हैं, दोनों एक ही time पे print हो रहे हैं, no, this should not be there, मतलब यह necessary condition है, अगर इन में से चारों में से कोई भी condition true नहीं होती, तो there will be a chance कि deadlock का कर ना हो, तो इसलिए what is the mutual exclusion?
Mutual exclusion is... कि whatever the resources you are using, all the resources must be used by all the processes in a mutual exclusive manner. Means one by one. Interleaving is not allowed. Interleaving is not allowed.
Second, no preemption. No preemption means like, जैसे R1 को P1 लेके use कर रहा है। R1 is allocated to P1. And, और P1 is saying I need R2, and P2 is saying I need R1, तो preemption is not there, preemption means ऐसा नहों कि like one process is holding some resource, और एक दूसर process आया, और हमने pre-empt कर दिया पहले वाले process को कि अपने resources को release कर दो no, pre-emption will not be there मतलब यहाँ पर कोई priority वाला system नहीं है कि high priority आया तो low priority वाला हम यहाँ पर equal priority की बात कर रहे हैं तो इसलिए pre-emption भी नहीं होगा एक process जो hold करके बैठा है वो hold ही करेगा जब तक कि वो execute नहीं होता वो pre-empt नहीं होगा मतलब उसकी switching वहाँ पर नहीं होगी third one is hold and wait hold and wait is what? this is a इस विशेष होल्ड और वेट होल्ड और वेट मिनट पीवन इस होल्डिंग वन रिसोर्स देटेस्ट आरवन एंड वेटिंग फॉर आर टू एंड पीवन इस होल्डिंग वन रिसोर्स देटेस्ट आर टू एंड वेटिंग फॉर आर वेट इस विशेष होल्ड और वेट ऐस already hold it that must be with the P1 and it can request for more resources तो यहनि एक resource के दो resources जितने भी P1 लेके बैठा है it will hold them and waiting for the another resources जो उसके पास नहीं है fourth one is circular weight, circular weight means this is what a kind of circle circle this, this is what a kind of circle, circle means like there is a loop in this अगर यहाँ पे loop होगा तो definitely यहाँ पे deadlock situation occur हो सकती है, अभी भी मैं यह देख दूंगा यही बोल रहा हूँ, हो सकती है, because चारों conditions बहुत important हैं, इन चारों conditions के बाद ही मैं decide कर सकता हूँ कि deadlock है या नहीं.
Let's see one more example of circular weight. Let's say that there is a process P1 which is holding some resource R1. This arrow means, अगर ये arrow towards the process आ रहा है, इसको हम बोलते है hold, मतलब वो process उस resource को लेके बैठा हुआ है, means it is allocated, so R1 is allocated to P1 process and there is a process, as P2 which is saying I need R1 I need R1 need means I am requesting for R1 request के लिए हम resource के towards resource की तरफ हम arrow drop प्रॉव करते हैं और P2 होल्डिंग सम रिसोर्स R2, P2 R1 की request कर रहा है और R2 को hold करके बैठा है और let's say there is another process P3 which is requesting for R2 and it is holding R3 means R3 को hold किया हुआ है and requesting for R2 and P1 which is holding R3 को hold किया है और P1 को hold किया है holding R1, it is requesting for a resource R3. So let's see कि यहाँ पे circular weight means this P3 is having R3 waiting for R2.
P2 is having R2 waiting for R1. P1 is having R1 waiting for R3. So this is what a kind of circular weight. यहाँ पे एक loop आ गया.
So these इस four conditions are necessary conditions, इनको हम बोलते है necessary and sufficient conditions to become a deadlock situation, तो अकेली एक situation नहीं, mutual exclusion, no preemption, hold and wait, circular wait अगर चारो necessary conditions है, then we can say deadlock occur हो रहा है, तो इसलिए ये चारो conditions जो हैं बहुत important है, this is a simple explanation of कि what is a deadlock and what are the conditions of the deadlock, thank you.