Thu. Dec 8th, 2022
    ऑपरेटिंग सिस्टम में डेडलॉक Deadlock in hindi, operating system

    डेडलॉक क्या है? (deadlock in operating system in hindi)

    ऑपरेटिंग सिस्टम में डेडलॉक तभी होता है या डेडलॉक की स्थिति तभी बनती है जब दो कंप्यूटर प्रोसेस एक ही रिसोर्स को साझा करते हैं और एक साथ उन्हें एक्सेस करने कीकोशिश करने लगते हैं।

    इसमें होता ये है कि दोनों में से कोई भी उस संसाधन को एक्सेस नहीं कर पाता। अगर दूसरे शब्दों में कहें तो डेडलोक एक कंडीशन है जिसमे दो प्रोसेस एक ही संसाधन का प्रयोग करने के लिए लड़ाई करते हैं लेकिन दोनों में से कोई भी कामयाब नहीं हो पाता।

    डेडलॉक का वास्तविक जीवन में उदाहरण समझने के लिए मान लीजिये कि दो दोस्त हैं जो अकेले कंप्यूटर गेम खेलना चाहते हैं और उसके लिए आपस में लड़ाई करते हैं।

    एक के पास उस गेम कि सीडी है तो दुसरे के पास रिमोट कण्ट्रोल है। यहाँ दोनों दोस्त एक दुसरे को खेलने भी नहीं देना चाहते और दोनों में से कोई खेल ही नहीं पायेगा जबतक सीडी और रिमोट दोनों ही एक के पास ना आ जाये। ऐसी ही स्थिति को डेडलॉक कहा जाता है।

    आप उपर वाले चित्र में देख सकते हैं कि यहाँ पर दो प्रोसेस हैं- P1 और P2. यहाँ दो रिसोर्स यानी संसाधन R1 और R2 भी हैं जिसमे से रिसोर्स R1 जो है उसे P1 को दिया गया है जबकि P2 को रिसोर्स R2 allocate किया गया है। अब यान पर समझिये कि होता क्या है:
    • प्रोसेस P1 को अपना कार्य पूरा करने के लिए रिसोर्स R2 की जरूरत है लेकिन वो तो P2 को allocate किया हुआ है। इसीलिए वो उस रिसोर्स के लिए निवेदन करेगा।
    • वहीं प्रोसेस P2 को अपना कार्य पूरा करने के लिए रिसोर्स R1 की जरूरत है लेकिन वो तो पहले से ही P1 को allocate है इसीलिए वो उसे एक्सेस नहीं कर पायेगा।
    • उपर वाले दोनों कारणों की वजह से दोनों प्रोसेस एक दुसरे के रिसोर्स का इन्तेजार करते रह जायेंगे और दोनों में से कोई भी पूरा नहीं हो पायेगा।

    डेडलॉक के कंडीशन (deadlock condition in hindi)

    डेडलॉक के निम्नलिखित चार कंडीशन होते हैं:

    1. म्यूच्यूअल एक्सक्लूशन (mutual exclusion)

    अगर हम रिसोर्सेज को साझा कर सकते है तो हम म्यूच्यूअल एक्सक्लूशन  को प्रिवेंट कर सकते है। अगर हमारे पास ऐसे रिसोर्सेज होते है जिन्हें शेयर नहीं किया जा सकता है तो उस स्थिति में हम म्यूच्यूअल एक्सक्लूशन को होने से नहीं रोक सकते।

    उदाहरण के लिए प्रिंटर एक ऐसा रिसोर्स है जिसे शेयर नहीं किया जा सकता। इस स्थिति में म्यूच्यूअल एक्सक्लूशन  को रोका नहीं जा सकता। लेकिन अगर आपके पास ऐसा रिसोर्स है जिसे शेयर किया जा सकता है तो आप उसे शेयर करके इस स्थिति को रोक सकते है। जैसे:- मैमोरी को हम शेयर कर सकते है।

    2. होल्ड & वेट (hold and wait)

    अगर रिसोर्सेज को प्रोसेस को इसके execution से पहले ही allocate कर दिया जाएँ तो हमहोल्ड & वेट वाले कंडीशन को होने से रोक सकते है। परन्तु इसकी हानि यह है कि इससे सिस्टम की उपयोगिता कम हो जाती है।

    उदाहरण के लिए किसी प्रोसेस को प्रिंटर की बाद में जरुरत है और हम उसे पहले ही प्रिंटर allocate कर देते है, तो जब तक इसकी एक्षेकुतिओन समाप्त नहीं हो जाती तब तक यह प्रिंटर ब्लाक रहेगा और दूसरे प्रोसेस इसका प्रयोग इसके खाली समय में नहीं कर सकते। और इसकी दूसरी हानि यह है कि इसमें starvation होता है।

    3. नो-Preemption

    अगर किसी प्रोसेस ने रिसोर्स को होल्ड किया हुआ है और वह दूसरे रिसोर्सेज का इन्तजार कर रहा है तो उस प्रोसेस से सभी रिसोर्सेज को रिलीज़ कर दिया जाता है जिससे दूसरे प्रोसेस अपने execution को पूरा कर सकें। लेकिन कुछ रिसोर्स जैसे:- प्रिंटर, टेप ड्राइवर्स इत्यादि को प्रीम्प्ट नहीं किया जा सकता है।

    4. सर्कुलर वेट (circular wait)

    सर्कुलर वेट को रोकने के लिए प्रोसेस को रिसोर्स केवल बढ़ते हुए क्रम में ही allocate कर सकते है। इसका मतलब ये हुआ कि रिसोर्सेज का एक क्रम होता है जिसके अनुसार ही प्रोसेस को रिसोर्स allocate किया जाता है।

    उदाहरण के तौर पर, यदि प्रोसेस P2 को R6 रिसोर्स allocate किया गया है तो अगली बार P2 को R5, R4 या इससे नीचे के रिसोर्स allocate नहीं किये जायेंगे। केवल R6 से उपर के रिसोर्स ही P2 को allocate किये जायेंगे। परन्तु इसकी खामी यह है कि इससे रिसोर्स की उपयोगिता बहुत ही कम हो जाती है।

    डेडलॉक अवॉयड (deadlock prevention in os in hindi)

    जैसा कि हम पढ़ चुके है कि डेडलॉक प्रिवेंशन के अल्गोरिथम उतने अच्छे नहीं है जिससे रिसोर्स का यूटिलाइजेशन और सिस्टम का थ्रूपुट कम हो जाता है। लेकिन हम डेडलॉक को अवॉयड कर सकते है। डेडलॉक avoidance अल्गोरिथम यह सुनिश्चित करती है कि प्रोसेस कभी भी unsafe स्टेट में नहीं जाएगी।

    इसमें दो स्टेट्स होते है:-सेफ स्टेटऔर unsafe स्टेट।

    सेफ स्टेट वो स्टेट होता है जिसमें हम प्रोसेस को एक सुरक्षित क्रम में एक्सीक्यूट करते है। इसमें प्रोसेस सुरक्षित क्रम में इस प्रकार मौजूद रहता है कि पहलीपहले प्रोसेस के पास एक्सीक्यूट होने के लिए पर्याप्त रिसोर्सेज हों। और जब execution समाप्त हो जाएँ तो इस प्रोसेस के रिसोर्सेज के रिलीज़ होने के बाद अगले प्रोसेस के execution के लिए भी पर्याप्त रिसोर्सेज हों।

    Unsafe स्टेट: अगर प्रोसेस एक सुरक्षित क्रम में नहीं है तो वह unsafe स्टेट में होता है और इसमेंडेडलॉक हो सकता है।

    इस लेख से सम्बंधित यदि आपका कोई भी सवाल या सुझाव है, तो आप उसे नीचे कमेंट में लिख सकते हैं।

    By अनुपम कुमार सिंह

    बीआईटी मेसरा, रांची से कंप्यूटर साइंस और टेक्लॉनजी में स्नातक। गाँधी कि कर्मभूमि चम्पारण से हूँ। समसामयिकी पर कड़ी नजर और इतिहास से ख़ास लगाव। भारत के राजनितिक, सांस्कृतिक और भौगोलिक इतिहास में दिलचस्पी ।

    5 thoughts on “ऑपरेटिंग सिस्टम में डेडलॉक और उसकी पूरी प्रक्रिया”

    Leave a Reply

    Your email address will not be published. Required fields are marked *