कंप्यूटर सिस्टम में विभिन्न प्रक्रियाएं होती हैं, जो या तो स्वतंत्र हो सकती हैं या ऑपरेटिंग सिस्टम में काम करने वाली सहयोगी प्रक्रियाएं हो सकती हैं। इसे स्वतंत्र माना जाता है जब सिस्टम पर चल रही कोई अन्य प्रक्रिया किसी प्रक्रिया को प्रभावित नहीं कर सकती है। प्रक्रिया-स्वतंत्र प्रक्रियाएं किसी भी डेटा को अन्य प्रक्रियाओं के साथ साझा नहीं करती हैं। दूसरी तरफ, सिस्टम पर क्रियान्वित होने वाली किसी अन्य प्रक्रिया से एक सहयोग प्रक्रिया प्रभावित हो सकती है। एक सहयोगी प्रक्रिया दूसरे के साथ डेटा साझा करती है।
cooperating process in os in hindi
Advantages of Cooperating Process in Operating System
ऑपरेटिंग सिस्टम में सहयोग प्रक्रिया के कई फायदे हैं। सहयोग प्रणाली के कुछ लाभ इस प्रकार हैं:
1. Information Sharing
विभिन्न प्रक्रियाओं के बीच सूचना साझा करने के लिए सहयोग प्रक्रियाओं का उपयोग किया जा सकता है। इसमें समान फाइलों तक पहुंच शामिल हो सकती है। एक तकनीक आवश्यक है ताकि प्रक्रियाएं फाइलों को समवर्ती रूप से एक्सेस कर सकें।
2. Modularity
मॉड्यूलरिटी से तात्पर्य जटिल कार्यों को छोटे उप-कार्यों में विभाजित करने से है। विभिन्न सहयोगी प्रक्रियाएं इन छोटे उप-कार्यों को पूरा कर सकती हैं। नतीजतन, आवश्यक कार्यों को अधिक तेज़ी से और कुशलता से पूरा किया जाता है।
3. Computation Speedup
एक ही कार्य के उप-कार्यों को एक साथ पूरा करने के लिए सहयोगी प्रक्रियाओं का उपयोग किया जा सकता है। यह कार्य को तेजी से पूरा करने की अनुमति देकर गणना की गति में सुधार करता है। हालांकि, यह तभी संभव है जब सिस्टम में कई प्रोसेसिंग तत्व हों।
4. Convenience
ऐसे कई कार्य हैं जिन्हें एक उपयोगकर्ता को करने की आवश्यकता होती है, जैसे मुद्रण, संकलन, संपादन, आदि। यह अधिक सुविधाजनक है यदि इन गतिविधियों को सहयोगी प्रक्रियाओं के माध्यम से प्रबंधित किया जा सकता है।
सहयोगी प्रक्रियाओं के समवर्ती निष्पादन के लिए उन प्रणालियों की आवश्यकता होती है जो प्रक्रियाओं को उनके कार्यों को संप्रेषित करने और सिंक्रनाइज़ करने में सक्षम बनाती हैं।
Methods of Cooperating Process In OS in Hindi
डेटा या संदेश साझा करके सहयोग करने वाली प्रक्रियाएं एक दूसरे के साथ समन्वय कर सकती हैं। तरीके नीचे दिए गए हैं:
1. Cooperation by sharing
चर, मेमोरी, डेटाबेस आदि सहित डेटा साझा करके प्रक्रियाएं सहयोग कर सकती हैं। महत्वपूर्ण खंड डेटा अखंडता प्रदान करता है, और असंगत डेटा से बचने के लिए लेखन परस्पर अनन्य है।
cooperating process in os in hindi
यहां, आप एक आरेख देखते हैं जो साझा करके सहयोग दिखाता है। इस आरेख में, प्रक्रिया P1 और P2 साझा डेटा जैसे फ़ाइलों, डेटाबेस, चर, मेमोरी आदि का उपयोग करके सहयोग कर सकते हैं।
2. Cooperation by Communication
सहयोग करने वाली प्रक्रियाएं संदेशों का उपयोग करके सहयोग कर सकती हैं। यदि प्रत्येक प्रक्रिया किसी कार्य को निष्पादित करने के लिए किसी अन्य प्रक्रिया के संदेश की प्रतीक्षा करती है, तो यह गतिरोध का कारण बन सकती है। यदि किसी प्रक्रिया को कोई संदेश प्राप्त नहीं होता है, तो यह भुखमरी का कारण बन सकता है।
यहाँ, आपने एक आरेख देखा है जो संचार द्वारा सहयोग को दर्शाता है। इस आरेख में, प्रक्रिया P1 और P2 संचार के लिए संदेशों का उपयोग करके सहयोग कर सकते हैं।
Example: Producer-Consumer Problem
आइए दो सहयोगी प्रक्रियाओं का एक उदाहरण लें। इसे निर्माता-उपभोक्ता समस्या के रूप में जाना जाता है, और इसमें दो प्रक्रियाएं शामिल हैं: निर्माता और उपभोक्ता।
Producer Process
यह जानकारी उत्पन्न करता है कि उपभोक्ता उपभोग करेगा।
Consumer Process
यह उस जानकारी का उपभोग करता है जो निर्माता उत्पादित करता है।
दोनों प्रक्रियाएं एक साथ चलती हैं। उपभोग करने के लिए कुछ नहीं होने पर ग्राहक प्रतीक्षा करता है।
एक निर्माता और एक उपभोक्ता है; निर्माता वस्तु बनाता है और उसे एक बफर में संग्रहीत करता है जबकि उपभोक्ता इसका उपभोग करता है। उदाहरण के लिए, प्रिंट सॉफ़्टवेयर ऐसे वर्ण उत्पन्न करता है जो प्रिंटर ड्राइवर उपभोग करता है। एक कंपाइलर असेंबली कोड उत्पन्न कर सकता है, जिसे एक असेंबलर उपयोग कर सकता है। इसके अलावा, असेंबलर ऑब्जेक्ट मॉड्यूल का उत्पादन कर सकता है जो लोडर द्वारा उपयोग किया जाता है।
कहाँ पे,
- निर्माता बफर में अगले खाली स्लॉट को निर्धारित करने के लिए इन वेरिएबल का उपयोग करता है।
- आउट वेरिएबल का उपयोग उपभोक्ता द्वारा यह निर्धारित करने के लिए किया जाता है कि आइटम कहाँ स्थित है।
- काउंटर का उपयोग उत्पादकों और उपभोक्ताओं द्वारा बफर में भरे हुए स्लॉट की संख्या निर्धारित करने के लिए किया जाता है।
Shared Resources in Operating System in Hindi
दो साझा संसाधन हैं:
- Buffer
- Counter
असंगति तब होती है जब निर्माता और उपभोक्ता को समय पर निष्पादित नहीं किया जाता है। यदि निर्माता और उपभोक्ता दोनों बिना किसी नियंत्रण के एक साथ निष्पादन करते हैं, तो दोनों द्वारा उपयोग किए जाने वाले काउंटर का मूल्य गलत होगा। ये प्रक्रियाएं निम्नलिखित चर साझा करती हैं:
- var n;
- type item = .....;
- var Buffer : array [0,n-1] of item;
- In, out:0..n-1;
अंदर और बाहर दोनों चर डिफ़ॉल्ट रूप से 0 पर सेट होते हैं। साझा बफर में दो तार्किक संकेत होते हैं, अंदर और बाहर, जो एक गोलाकार सरणी के रूप में कार्यान्वित किए जाते हैं। इन वेरिएबल्स बफर की अगली फ्री पोजीशन को इंगित करते हैं, जबकि आउट वेरिएबल्स बफर की पहली पूर्ण स्थिति को इंगित करते हैं। इन = आउट होने पर बफ़र खाली होता है, और यह तब भरा जाता है जब +1 मॉड n = आउट में होता है।