प्रक्रिया बनाम धागा
कंप्यूटर को एक समय में एक से अधिक गतिविधि करने देने के लिए, प्रक्रिया और थ्रेड दोनों एक महान सेवा प्रदान करते हैं, लेकिन उनके काम करने के तरीके में अंतर होता है। कंप्यूटर पर चलने वाले सभी प्रोग्राम कम से कम एक प्रक्रिया या थ्रेड का उपयोग करते हैं। प्रोसेस और थ्रेड कंप्यूटर के संसाधनों को साझा करते हुए प्रोसेसर को कई कार्यों के बीच आसानी से स्विच करने देते हैं। इसलिए एक प्रोग्रामर का यह कर्तव्य है कि वह उच्च प्रदर्शन वाले प्रोसेसर को बनाने के लिए प्रभावी तरीके से थ्रेड्स और प्रक्रियाओं का उपयोग करे। उपलब्ध ऑपरेटिंग सिस्टम के अनुसार थ्रेड्स और प्रक्रियाओं का कार्यान्वयन भिन्न होता है।
एक प्रक्रिया क्या है?
एक प्रक्रिया, सामान्य तौर पर, एक विशिष्ट परिणाम प्राप्त करने के लिए क्रियाओं की एक सतत श्रृंखला है। लेकिन, कंप्यूटर की दुनिया में, एक प्रक्रिया एक कंप्यूटर प्रोग्राम को क्रियान्वित करने का एक उदाहरण है। दूसरे शब्दों में, यह एक चल रहे कंप्यूटर प्रोग्राम की एकल घटना का विचार है। केवल प्रक्रियाएं बायनेरिज़ चला रही हैं जिनमें एक या अधिक थ्रेड होते हैं।
एक प्रक्रिया में शामिल थ्रेड्स की संख्या के अनुसार, दो प्रकार की प्रक्रियाएं होती हैं। वे सिंगल-थ्रेड प्रोसेस और मल्टी-थ्रेड प्रोसेस हैं। जैसा कि इसके नाम से पता चलता है, सिंगल-थ्रेड प्रक्रिया एक ऐसी प्रक्रिया है जिसमें केवल एक थ्रेड होता है। इसलिए, यह धागा एक प्रक्रिया है, और केवल एक ही गतिविधि हो रही है। एक बहु-थ्रेड प्रक्रिया में, एक से अधिक थ्रेड होते हैं, और एक से अधिक गतिविधि हो रही होती है।
दो या दो से अधिक प्रक्रियाएं अंतर-प्रक्रिया संचार का उपयोग करके एक दूसरे के भीतर संचार कर सकती हैं। लेकिन यह काफी कठिन है और इसके लिए और संसाधनों की जरूरत है। एक नई प्रक्रिया बनाते समय एक प्रोग्रामर को दो काम करने होते हैं।वे मूल प्रक्रिया का दोहराव और नई प्रक्रिया के लिए स्मृति और संसाधनों का आवंटन हैं। तो यह वास्तव में महंगा है।
थ्रेड क्या है?
आईटी की दुनिया में, एक थ्रेड एक कंप्यूटर प्रोग्राम के निर्देशों का सबसे छोटा निष्पादन है जिसे एक शेड्यूल के अनुसार स्वतंत्र रूप से प्रबंधित किया जा सकता है। एक थ्रेड एक प्रक्रिया के भीतर निष्पादन का एक सरल मार्ग है। एक धागा एक प्रक्रिया की तरह ही शक्तिशाली होता है क्योंकि एक धागा कुछ भी कर सकता है जो एक प्रक्रिया कर सकती है। थ्रेड एक हल्की-फुल्की प्रक्रिया है और इसके लिए केवल कम संसाधनों की आवश्यकता होती है। थ्रेड एक ही वेरिएबल और डेटा स्ट्रक्चर वेरिएबल से पढ़ और लिख सकते हैं। थ्रेड, थ्रेड्स के बीच आसानी से संचार कर सकता है।
आज मल्टी-थ्रेडिंग कई समस्याओं का एक स्वाभाविक तरीका बन गया है। एक बड़े कार्य को भागों में विभाजित किया जाता है और उनमें से प्रत्येक को निष्पादन की एक इकाई को सौंपा जाता है जिसे थ्रेड कहा जाता है। यह बस मल्टी-थ्रेडिंग है। इसके लिए सावधानीपूर्वक प्रोग्रामिंग की आवश्यकता होती है क्योंकि थ्रेड डेटा संरचनाओं को साझा करते हैं जिन्हें एक समय में किसी अन्य थ्रेड द्वारा संशोधित किया जाता है और इसलिए भी कि थ्रेड समान पता स्थान साझा करते हैं।थ्रेड्स का एक और फायदा यह है कि थ्रेड्स समानता प्राप्त करने का एक कुशल और प्रभावी तरीका प्रदान करते हैं। एक सिस्टम के एक थ्रूपुट को कई प्रोसेसर पर कई थ्रेड्स को चलाने की अनुमति देकर बढ़ाया जा सकता है क्योंकि थ्रेड एक स्वतंत्र रूप से शेड्यूल करने योग्य इकाई है।
मुतली सूत्रण
प्रोसेस और थ्रेड में क्या अंतर है?
• प्रक्रियाओं को बनाना मुश्किल है क्योंकि इसे मूल प्रक्रिया और मेमोरी आवंटन के दोहराव की आवश्यकता होती है जबकि थ्रेड बनाना आसान होता है क्योंकि उन्हें अलग पता स्थान की आवश्यकता नहीं होती है।
• सरल कार्यों के लिए थ्रेड्स का उपयोग किया जाता है जबकि प्रक्रियाओं का उपयोग भारी-भार वाले कार्यों जैसे कि किसी एप्लिकेशन के निष्पादन के लिए किया जाता है।
• प्रक्रियाएं एक ही पता स्थान साझा नहीं करती हैं, लेकिन एक ही प्रक्रिया के भीतर धागे एक ही पता स्थान साझा करते हैं।
• प्रक्रियाएं एक दूसरे से स्वतंत्र होती हैं, लेकिन थ्रेड एक दूसरे पर निर्भर होते हैं क्योंकि वे एक ही पता स्थान साझा करते हैं।
• एक प्रक्रिया में कई धागे शामिल हो सकते हैं।
• चूंकि थ्रेड एक ही पता स्थान साझा करते हैं, वर्चुअलाइज्ड मेमोरी केवल प्रक्रियाओं से जुड़ी होती है, लेकिन थ्रेड्स से नहीं। लेकिन प्रत्येक थ्रेड के साथ एक अलग वर्चुअलाइज्ड प्रोसेसर जुड़ा होता है।
• प्रत्येक प्रक्रिया का अपना कोड और डेटा होता है जबकि प्रक्रियाओं के धागे समान कोड और डेटा साझा करते हैं।
• प्रत्येक प्रक्रिया प्राथमिक धागे से शुरू होती है, लेकिन यदि आवश्यक हो तो यह अतिरिक्त धागे बना सकती है।
• प्रक्रियाओं के बीच संदर्भ स्विचिंग समान प्रक्रिया के थ्रेड्स के बीच संदर्भ स्विचिंग की तुलना में बहुत धीमी है।
• थ्रेड्स की अपने डेटा सेगमेंट तक सीधी पहुंच हो सकती है, लेकिन प्रक्रियाओं के पास डेटा सेगमेंट की अपनी कॉपी होती है।
• प्रक्रियाओं में ओवरहेड होते हैं लेकिन धागे नहीं।
सारांश:
प्रक्रिया बनाम धागा
प्रोसेस और थ्रेड दो तकनीकें हैं जिनका उपयोग प्रोग्रामर द्वारा प्रोसेसर को नियंत्रित करने और कंप्यूटर पर निर्देशों के निष्पादन को कुशल और प्रभावी तरीके से करने के लिए किया जाता है। एक प्रक्रिया में कई धागे हो सकते हैं। थ्रेड मेमोरी साझा करने का एक कुशल तरीका प्रदान करते हैं, हालांकि यह प्रक्रियाओं की तुलना में कई निष्पादन संचालित करता है। इसलिए, धागे कई प्रक्रियाओं का एक विकल्प हैं। मल्टी-कोर प्रोसेसर की ओर बढ़ते रुझान के साथ, प्रोग्रामर्स की दुनिया में थ्रेड्स सबसे महत्वपूर्ण टूल बन जाएंगे।