Computing में dead lock एक ऐसी situation है जब दो computer एक ही resource को साझा करते है और एक ही साथ उन्हें access करने की कोशिश करते है जिसके कारण कोई भी resource access नही हो पाता है।
अर्थात dead lock वह स्थिति है जब एक से ज्यादा process एक ही resource के लिए fight करते है जिसके कारण हमारे computer का system dead lock में चला जाता है यानी कोई भी resource access नही हो पाता है।
नीचे कुछ condition दी जा रही है जिसके कारण हमारे computer system में dead lock की स्थिति आती है:-
1:- mutual exclusion
2:- hold & wait
3:- no preemption
4:- circular wait
1:- mutual exclusion:- mutual exclusion की स्थिति में, कोई न कोई एक ऐसा resource होता है, जिसे processes के मध्य share ना किया जा सकता है।
2:- hold & wait:- hold and wait process में एक resource को होल्ड किये रहते है और दूसरे resource के लिए wait करते है।
3:- no preemption:- no preemption में वह resource जो किसी process के लिए allocate हो चूका हो, उसे जबरदस्ती किसी दूसरे process के लिए allocate नही किया जा सकता है।
4:- circular wait:- circular wait की इस स्थिति में, प्रत्येक process एक resource के लिए wait करता है जिसे दूसरा held किये हुए होता है।
Dead Lock avoidence:-
हालांकि dead lock के अल्गोरिथम उतने अच्छे नहीं है जिससे रिसोर्स का यूटिलाइजेशन और सिस्टम का थ्रूपुट कम हो जाता है। लेकिन हम dead lock को avoid कर सकते है। डेडलॉक avoidance अल्गोरिथम यह सुनिश्चित करती है कि प्रोसेस कभी भी unsafe स्टेट में नहीं जाएगी।
इसमें दो स्टेट्स होते है:-
1:- safe state
2:- unsafe state
Safe state:- सेफ स्टेट वो स्टेट होता है जिसमें हम प्रोसेस को एक सुरक्षित क्रम में excute करते है। इसमें process सुरक्षित क्रम में इस प्रकार मौजूद रहता है कि पहलीपहले प्रोसेस के पास एक्सीक्यूट होने के लिए पर्याप्त रिसोर्सेज हों।
Unsafe state:- अगर प्रोसेस एक सुरक्षित क्रम में नहीं है तो वह unsafe स्टेट में होता है और इसमें dead lock हो सकता है।