Critical Section Problem in OS in Hindi

क्रिटिकल सेक्शन क्या है ? | Critical Section Problem in Operating System in Hindi

ऑपरेटिंग सिस्टम में ‘Critical Section Problem’ एक महत्वपूर्ण तत्व है जो एक program में समय-समय पर आती है जब कई processes एक समय में एक साझा संसाधन का उपयोग करने का प्रयास करती हैं, और इससे संबंधित समस्याएं उत्पन्न हो सकती हैं।

‘Critical Section’ एक हिस्सा होता है जो केवल एक process द्वारा एक समय में पहुंचा जा सकता है और दूसरे processes को उस समय तक इंतजार करना होता है जब तक यह पूरा नहीं होता है। इससे यह सुनिश्चित होता है कि संसाधन का गलत या असंतुलन उत्पन्न नहीं होता है और प्रोग्राम सही रूप से काम करता है।इससे यह सुनिश्चित होता है कि कोई भी संसाधन केवल एक समय में केवल एक process द्वारा ही इस्तेमाल हो रहा है और सही क्रम में हो रहा है।इस समस्या को हल करने के लिए, Operating System क्रिटिकल सेक्शन को Block करने या lock करने के लिए कुछ mechanism का उपयोग करता है।

चलिए मान लें कि आपके पास दो दोस्त हैं जो एक कमरा साझा कर रहे हैं, और वहां एक ही कुर्सी है। वे दोनों उस पर बैठना चाहते हैं, लेकिन एक समय में केवल एक ही बैठ सकता है। अब हमें इस कुर्सी के लिए उनसे लड़ने से बचाने के लिए एक नियम की आवश्यकता है।

Critical Section Problem को संभालने की तकनीक

Critical Section Problem का समाधान करने के लिए, हमें कुछ कदम उठाने होते हैं ताकि हम सुनिश्चित कर सकें कि किसी भी समय केवल एक process अपने Critical Section में हो। इससे यह होगा कि एक समय पर केवल एक ही प्रोसेस अपने सारे Critical कार्यों को कर रहा है और दूसरे प्रोसेसेस को interference नहीं हो रही है। यहां Critical Section Problem को हल करने के लिए दो मुख्य तरीके हैं:

1. Locks (ताले):

  • इसमें हर प्रोसेस को अपने critical section में प्रवेश करने के लिए एक “Lock” मिलता है।
  • जब कोई प्रोसेस अपने critical section में प्रवेश करता है, तो वह ताला लेता है।
  • दूसरे processes को ताला मिलने पर वे अपने critical section में प्रवेश करने के लिए प्रतीक्षा करते हैं।
  • एक process जब अपना काम पूरा कर लेता है, तो वह ताला छोड़ देता है, जिससे दूसरे प्रोसेसेस क्रिटिकल सेक्शन में प्रवेश कर सकते हैं।

Example :

सोचें कि एक बड़ा कमरा है जिसमें कई लोग आ सकते हैं, लेकिन एक समय में सिर्फ एक ही व्यक्ति ही रूम के अंदर रह सकता है। अब, इस रूम की चाबी एक व्यक्ति के पास है। जब वह व्यक्ति रूम में प्रवेश करता है, वह चाबी के साथ रूम के अंदर है। इसका मतलब है कि अब कोई भी और व्यक्ति रूम में प्रवेश करने का प्रयास नहीं कर सकता, क्योंकि चाबी एक से ज्यादा व्यक्तियों के पास नहीं है। जब वह पहला व्यक्ति रूम से बाहर निकलता है, तो दूसरे को चाबी दी जाती है और अब नए व्यक्ति को आने का अधिकार होता है। इस प्रकार, रूम में कभी भी सिर्फ एक ही व्यक्ति हो सकता है, जिससे रूम की सुरक्षितता बनी रहती है।

इस तरह से, यह उदाहरण सिर्फ एक तरीके से बताता है कि lock कैसे सुरक्षितता प्रदान करता है, जिससे केवल एक समय में ही किसी critical section में प्रवेश किया जा सकता है।

2. Semaphore (सेमाफोर):

  • इसमें हर प्रोसेस को एक संख्यात्मक मूल्य (Semaphore) मिलता है, जिसे वह केवल 0 या 1 के रूप में मान सकता है।
  • Semaphore 0 होने पर प्रोसेस को अपने critical section में प्रवेश करने की अनुमति नहीं होती।
  • जब कोई प्रोसेस अपने क्रिटिकल सेक्शन में प्रवेश करता है, तो सेमाफोर को 1 कर दिया जाता है।
  • अगर कोई और प्रोसेस भीcritical section में प्रवेश करना चाहता है, तो सेमाफोर 0 होने की प्रतीक्षा करेगा।
  • जब पहले वाला प्रोसेस अपना काम पूरा कर लेता है, तो सेमाफोर को 0 कर दिया जाता है, जिससे दूसरे प्रोसेसेस क्रिटिकल सेक्शन में प्रवेश कर सकते हैं।

Example :

सोचिए एक व्यस्त चौराहा, जहां कई सड़कें मिलती हैं और यहां यहां बहुत सारे वाहन हैं। वहां Traffic Lights हैं जो वाहनों की चलने को control कर रहे हैं। अब, प्रत्येक सड़क एक अलग प्रक्रिया की तरह है, और चौराहा एक क्रिटिकल सेक्शन है जहां केवल एक समय में ही एक सड़क (प्रक्रिया) चल सकती है।यातायात को सुचना देने के लिए, हम एक सेमाफोर का उपयोग करते हैं। सेमाफोर को एक ध्वज या संकेत की तरह समझा जा सकता है। मान लीजिए सेमाफोर के दो स्थितियाँ हैं: लाल और हरा।

  • सेमाफोर को प्रारंभ में लाल पर सेट किया गया है, जिससे इसका मतलब है कि कोई भी सड़क (वाहन) चौराहे में प्रवेश नहीं कर सकती। सभी वाहन रुके हुए हैं।
  •  जब सड़कों पर वाहनों की ठंडक (कम वाहन ) होती है और सब तैयार हैं चलने के लिए, तब सेमाफोर को हरे पर सेट किया जा सकता है। इससे यह सूचित होता है कि एक सड़क अब चौराहे में प्रवेश कर सकती है।
  • जब एक सड़क चौराहे से बाहर निकलती है, तब सेमाफोर को फिर से लाल पर सेट किया जा सकता है। इससे यह सुनिश्चित होता है कि अब दूसरी वाहन चौराहे में प्रवेश नहीं कर सकती है जब तक पहली सड़क पूरी तरह से बाहर नहीं निकलती। इस प्रकार, सेमाफोर चौराहे पर वाहनों की सुरक्षित तरीके से control करने में मदद करता है, जिससे चौराहे पर Sequential और सुरक्षित यातायात सुनिश्चित हो सकता है।

ये तरीके सुनिश्चित करते हैं कि केवल एक प्रोसेस ही एक समय में अपने क्रिटिकल सेक्शन में हो, और इससे interference नहीं होती। इनमें से कोई भी तकनीक चयन की जा सकती है आधारित रूप से आवश्यकताओं और प्रणाली की जटिलता पर।

Critical Section Problem के नुकसान

critical section problem के कुछ नुकसानों की चर्चा करें:

1. Delay: क्रिटिकल सेक्शन प्रॉब्लम का समाधान करने के लिए, प्रोसेसेस को क्रिटिकल सेक्शन में प्रवेश करने और इसे छोड़ने के लिए इंतजार करना पड़ता है। इससे processes का काम करने में विलंब हो सकता है और सिस्टम का प्रदर्शन कम हो सकता है।

2. Inefficiency: कुछ समय तक के लिए, कई प्रोसेसेस को इंतजार करना पड़ सकता है, जब तक कि कोई एक प्रोसेस critical section से बाहर नहीं निकलता है। इससे सिस्टम की कुल efficiency कम हो सकती है।

3. Concurrency : एक समय में केवल एक प्रोसेस ही critical section में प्रवेश कर सकता है, जिससे कुछ समय तक के लिए सामान्यकृति में कमी हो सकती है।

4. Deadlock: अगर कोई प्रोसेस आपस में सही तरीके से सिंक्रनाइज़ नहीं हो रहा है, तो deadlock का खतरा हो सकता है। Deadlock में सिस्टम अविश्वसनीय रूप से रुक सकता है और कोई भी कार्रवाई नहीं कर सकता है।

5. Code Complexity: critical section problem का समाधान करने के लिए स्तर पर स्तर का code लिखना कठिन हो सकता है और यह विकसन और अनुरूपण को बढ़ा सकता है।

More about Critical Section Problem

Read also this topics in Operating System in Hindi-

Leave a Comment