Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

डीबीएमएस में गतिरोध


एक गतिरोध तब होता है जब दो या दो से अधिक प्रक्रियाओं को उनके निष्पादन को पूरा करने के लिए कुछ संसाधनों की आवश्यकता होती है जो दूसरी प्रक्रिया द्वारा आयोजित की जाती है। डीबीएमएस में गतिरोध

उपरोक्त आरेख में, प्रक्रिया 1 में संसाधन 1 है और संसाधन 2 की आवश्यकता है। इसी प्रकार प्रक्रिया 2 में संसाधन 2 है और संसाधन 1 की आवश्यकता है। इनमें से प्रत्येक प्रक्रिया को पूरा करने के लिए दूसरे के संसाधन की आवश्यकता होती है, लेकिन उनमें से कोई भी अपने संसाधनों को छोड़ने के लिए तैयार नहीं है। तो, प्रक्रिया 1 और प्रक्रिया 2 गतिरोध में हैं।

कॉफ़मैन की स्थिति

एक गतिरोध तभी होगा जब कॉफ़मैन की चार शर्तें सही हों। जरूरी नहीं कि ये शर्तें परस्पर अनन्य हों। वे हैं:

आपसी बहिष्करण

एक संसाधन होना चाहिए जो एक समय में केवल एक प्रक्रिया द्वारा आयोजित किया जा सके। नीचे दिए गए आरेख में, संसाधन R1 का एक ही उदाहरण है और यह केवल प्रक्रिया P1 द्वारा आयोजित किया जाता है।

डीबीएमएस में गतिरोध

रुको और रुको

एक प्रक्रिया कई संसाधनों को धारण कर सकती है और फिर भी अन्य प्रक्रियाओं से अधिक संसाधनों का अनुरोध कर सकती है जो उन्हें धारण कर रही हैं। नीचे दिए गए आरेख में, प्रक्रिया P1 में संसाधन R1 और R2 हैं और संसाधन R3 का अनुरोध कर रहा है जो प्रक्रिया P2 द्वारा आयोजित किया जाता है।

डीबीएमएस में गतिरोध

कोई छूट नहीं

किसी संसाधन को किसी प्रक्रिया से बलपूर्वक मुक्त नहीं किया जा सकता है। एक प्रक्रिया केवल स्वेच्छा से एक संसाधन जारी कर सकती है। नीचे दिए गए आरेख में, प्रक्रिया P1 संसाधन R3 को प्रक्रिया P2 से पूर्व-मुक्त नहीं कर सकता है। इसे तभी रिलीज़ किया जाएगा जब P2 इसका निष्पादन पूरा होने के बाद स्वेच्छा से इसे छोड़ देगा।

डीबीएमएस में गतिरोध

परिपत्र प्रतीक्षा

एक प्रक्रिया दूसरी प्रक्रिया द्वारा आयोजित संसाधन की प्रतीक्षा कर रही है, जो तीसरी प्रक्रिया द्वारा आयोजित संसाधन की प्रतीक्षा कर रही है और इसी तरह, जब तक अंतिम प्रक्रिया पहली प्रक्रिया द्वारा आयोजित संसाधन की प्रतीक्षा कर रही है। यह एक गोलाकार श्रृंखला बनाता है। उदाहरण के लिए:प्रक्रिया P1 को संसाधन R1 आवंटित किया गया है और यह संसाधन R2 का अनुरोध कर रहा है। इसी तरह, प्रक्रिया P2 को संसाधन R2 आवंटित किया गया है और यह संसाधन R1 का अनुरोध कर रहा है। यह एक गोलाकार प्रतीक्षा लूप बनाता है।

एक प्रक्रिया दूसरी प्रक्रिया द्वारा आयोजित संसाधन की प्रतीक्षा कर रही है, जो तीसरी प्रक्रिया द्वारा आयोजित संसाधन की प्रतीक्षा कर रही है और इसी तरह, जब तक अंतिम प्रक्रिया पहली प्रक्रिया द्वारा आयोजित संसाधन की प्रतीक्षा कर रही है। यह एक गोलाकार श्रृंखला बनाता है। उदाहरण के लिए:प्रक्रिया P1 को संसाधन R1 आवंटित किया गया है और यह संसाधन R2 का अनुरोध कर रहा है। इसी तरह, प्रक्रिया P2 को संसाधन R2 आवंटित किया गया है और यह संसाधन R1 का अनुरोध कर रहा है। यह एक गोलाकार प्रतीक्षा लूप बनाता है।

डीबीएमएस में गतिरोध

गतिरोध का पता लगाना

संसाधन अनुसूचक एक गतिरोध का पता लगा सकता है क्योंकि यह विभिन्न प्रक्रियाओं के लिए आवंटित सभी संसाधनों का ट्रैक रखता है। गतिरोध का पता चलने के बाद, इसे निम्न विधियों का उपयोग करके हल किया जा सकता है:

  • गतिरोध में शामिल सभी प्रक्रियाओं को समाप्त कर दिया गया है। यह एक अच्छा तरीका नहीं है क्योंकि प्रक्रियाओं द्वारा की गई सभी प्रगति नष्ट हो जाती है।
  • संसाधनों को कुछ प्रक्रियाओं से मुक्त किया जा सकता है और गतिरोध के हल होने तक दूसरों को दिया जा सकता है।

गतिरोध निवारण

गतिरोध उत्पन्न होने से पहले इसे रोकना अनिवार्य है। इसलिए, सिस्टम यह सुनिश्चित करने के लिए निष्पादित होने से पहले प्रत्येक लेनदेन की सख्ती से जांच करता है कि यह गतिरोध का कारण नहीं बनता है। यदि इस बात की भी संभावना है कि किसी लेन-देन से गतिरोध पैदा हो सकता है, तो इसे कभी भी निष्पादित करने की अनुमति नहीं है।

कुछ गतिरोध निवारण योजनाएं हैं जो यह सुनिश्चित करने के लिए टाइमस्टैम्प का उपयोग करती हैं कि गतिरोध उत्पन्न नहीं होता है। ये हैं -

  • प्रतीक्षा करें - योजना समाप्त करें

    प्रतीक्षा-मृत्यु योजना में, यदि कोई लेन-देन T1 लेन-देन T2 द्वारा रखे गए संसाधन के लिए अनुरोध करता है, तो निम्न दो संभावनाओं में से एक हो सकती है:

    • TS(T1)
    • TS(T1)> TS(T2) - यदि T1 T2 से छोटा है अर्थात T1 T2 के बाद सिस्टम में आया है, तो T1 को मार दिया जाता है। इसे बाद में उसी टाइमस्टैम्प के साथ फिर से शुरू किया जाता है।

  • घाव - प्रतीक्षा योजना

    घाव-प्रतीक्षा योजना में, यदि कोई लेन-देन T1 लेन-देन T2 द्वारा रखे गए संसाधन के लिए अनुरोध करता है, तो निम्न दो संभावनाओं में से एक हो सकती है:

    • TS(T1)
    • TS(T1)> TS(T2) - यदि T1 T2 से छोटा है, अर्थात T1 T2 के बाद सिस्टम में आया है, तो उसे उस संसाधन की प्रतीक्षा करने की अनुमति है जो T2 के निष्पादन के पूरा होने पर मुक्त हो जाएगा।

गतिरोध से बचाव

गतिरोध होने के बाद उपाय करने के बजाय गतिरोध से बचना बेहतर है। गतिरोध से बचने के लिए ग्राफ की प्रतीक्षा का उपयोग किया जा सकता है। हालांकि यह केवल छोटे डेटाबेस के लिए उपयोगी है क्योंकि यह बड़े डेटाबेस में काफी जटिल हो सकता है।

ग्राफ़ की प्रतीक्षा करें

ग्राफ की प्रतीक्षा संसाधनों और लेनदेन के बीच संबंध को दर्शाती है। यदि कोई लेन-देन किसी संसाधन का अनुरोध करता है या यदि उसके पास पहले से कोई संसाधन है, तो यह ग्राफ़ की प्रतीक्षा में बढ़त के रूप में दिखाई देता है। यदि ग्राफ की प्रतीक्षा में एक चक्र है, तो सिस्टम में गतिरोध हो सकता है, अन्यथा नहीं।

डीबीएमएस में गतिरोध

डेडलॉक पर ध्यान न दें - शुतुरमुर्ग एल्गोरिथम

शुतुरमुर्ग एल्गोरिथ्म का मतलब है कि गतिरोध को आसानी से नजरअंदाज कर दिया जाता है और यह माना जाता है कि यह कभी नहीं होगा। ऐसा इसलिए किया जाता है क्योंकि कुछ प्रणालियों में गतिरोध को संभालने की लागत केवल इसे अनदेखा करने की तुलना में बहुत अधिक होती है क्योंकि ऐसा बहुत कम होता है। इसलिए, यह मान लिया जाता है कि गतिरोध कभी नहीं होगा और यदि ऐसा होता है तो सिस्टम रीबूट हो जाता है।


  1. DBMS में एक-से-अनेक या अनेक-से-एक संबंध

    डीबीएमएस में संबंध एक-से-अनेक या अनेक-से-एक हो सकते हैं। आइए देखें कि उदाहरणों के साथ इसका क्या अर्थ है - एक-से-अनेक संबंध DBMS में वन-टू-मैनी संबंध एक इकाई के उदाहरणों के बीच एक अन्य इकाई के एक से अधिक उदाहरण के साथ संबंध है। संबंध इस प्रकार दिखाया जा सकता है - आइए एक उदाहरण देखें - एक विद्या

  1. DBMS में डेटा डिक्शनरी

    डेटा डिक्शनरी में डेटाबेस मेटाडेटा होता है। इसमें डेटाबेस में वस्तुओं के बारे में रिकॉर्ड होते हैं। डेटा डिक्शनरी में क्या शामिल है डेटा डिक्शनरी में निम्नलिखित जानकारी होती है - डेटाबेस में तालिकाओं का नाम तालिका की बाधाएं यानी चाबियां, संबंध आदि। तालिकाओं के स्तंभ जो एक दूसरे से संबंधित हैं टेबल

  1. डीबीएमएस में कार्यात्मक निर्भरता

    कार्यात्मक निर्भरता क्या है डीबीएमएस में कार्यात्मक निर्भरता, जैसा कि नाम से पता चलता है, एक दूसरे पर निर्भर तालिका की विशेषताओं के बीच एक संबंध है। E. F. Codd द्वारा प्रस्तुत, यह डेटा अतिरेक को रोकने में मदद करता है और खराब डिज़ाइनों के बारे में जानता है। (तीर चिह्न) द्वारा दर्शाया जाता है फिर न