विषय-सूचि
मल्टीथ्रेडिंग क्या है? (multithreading in operating system in hindi)
ऑपरेटिंग सिस्टम में मल्टीथ्रेडिंग एक execution मॉडल है जो एक प्रोसेस को एक से ज्यादा कोड सेगमेंट (थ्रेड्स) को उन प्रोसेस के साथ रन होने की सुविधा प्रदान करता है।
आप थ्रेड को एक चाइल्ड प्रोसेस की तरह भी देख सकते हैं जो पैरेंट प्रोसेस के संसाधनों का प्रयोग करते हैं और स्वतंत्र रूप से एक्सीक्यूट होते हैं।
एक सिंगल प्रोसेस के एक से ज्यादा थ्रेड एक सिंगल CPU सिस्टम में CPU को शेयर कर सकते हैं या किसी समानांतर मल्टीप्रोसेसर सिस्टम में पूरे के पूरे रन हो सकते हैं।
कुछ ऑपरेटिंग सिस्टम यूजर लेवल थ्रेड और कर्नेल लेवल थ्रेड- दोनों की ही कंबाइन की हुई फैसिलिटी कि सुविधा देते हैं। सोलारिस इस कंबाइंड एप्रोच का एक बहुत ही अच्छा उदाहरण है।
कंबाइंड सिस्टम में समान एप्लीकेशन के अंदर एक से ज्यादा थ्रेड एक से ज्यादा प्रोसेसर पर समानांतर में रन कर सकते हैं और किसी ब्लॉकिंग सिस्टम कॉल को पूरी प्रक्रिया को ब्लाक करने की कोई जरूरत नहीं पड़ती। मल्टीथ्रेडिंग मॉडल्स तीन तरह के होते हैं:
- मेनी टू मेनी रिलेशनशिप
- मेनी टू वन रिलेशनशिप
- वन टू वन रिलेशनशिप
अब हम इन तीनो के बारे में एक-एक कर जानेंगे और समझेंगे कि ये क्या हैं:
मेनी टू मेनी रिलेशनशिप मॉडल (many to many relationship model in hindi)
मेनी टू मेनी मॉडल किसी भी संख्या में यूजर थ्रेड्स को बराबर या छोटे संख्या में कर्नेल थ्रेड्स पर मल्टीप्लेक्स कर सकता है।
नीचे वाले चित्र में आप मेनी टू मेनी मल्टीथ्रेडिंग मॉडल को देख सकते हैं जहां छः यूजर लेवल थ्रेड्स को छः कर्नेल लेवल थ्रेड्स के साथ मल्टीप्लेक्स किया गया है।
इस मॉडल में डेवलपर उतनी संख्या में यूजर थ्रेड्स बनाने की क्षमता रखता है जितने की जरूरत हो। वहीं उनसे जुड़े कर्नेल थ्रेड्स एक मल्टीप्रोसेसर मशीन में समानांतर रूप से रन कर सकते हैं।
ये मॉडल concurrency पर सबसे सटीक एक्यूरेसी देता है और जब कोई थ्रेड ब्लॉकिंग सिस्टम कॉल को परफॉर्म करता है तब कर्नेल किसी और थ्रेड को एक्सीक्यूट होने के लिए शेड्यूल कर सकता है।
मेनी टू वन रिलेशनशिप मॉडल (many to one relationship model in hindi)
मेनी टू वन मॉडल बहुत सारे यूजर लेवल थ्रेड्स को एक कर्नेल लेवल थ्रेड से मैप करता है। यूजर स्पेस में थ्रेड का प्रबंधन थ्रेड लाइब्रेरी द्वारा किया जाता है। जब थ्रेड कोई ब्लॉकिंग सिस्टम कॉल बनाता है तब पूरा प्रोसेस ब्लॉक्ड हो जाता है।
एक समय पर कोई एक थ्रेड ही कर्नेल को एक्सेस कर सकता है, इसीलिए मल्टीप्रोसेसर पर समानांतर रूप से एक से ज्यादा थ्रेड्स रन करने में अक्षम होते हैं।
अगर यूजर लेवल थ्रेड लाइब्रेरी को ऑपरेटिंग सिस्टम में इस तरह से इमप्लेमेंट किया जाता है कि सिस्टम उन्हें सपोर्ट नहीं करता और तब कर्नेल थ्रेड्स मेनी टू वन रिलेशनशिप मोड का प्रयोग करते हैं।
वन टू वन रिलेशनशिप मॉडल (one to one relationship model in hindi)
यूजर लेवल थ्रेड और कर्नेल लेवल थ्रेड का ये वन टू वन रिलेशनशिप होता है। ये मॉडल मेनी टू वन मॉडल से ज्यादा concurrency कि सुविधा देता है।
जब कोई थ्रेड ब्लॉकिंग सिस्टम कॉल बनाता है तब भी ये दुसरे थ्रेड को रन करने की अनुमति देता है।
ये माइक्रोप्रोसेसर पर एक से ज्यादा थ्रेड्स को समानांतर में रन भी होने की सुविधा देता है।
इस मॉडल की खामी यह है कि यूजर थ्रेड को बनाने के बाद उसके लिए कर्नेल थ्रेड भी बनाने की जरूरत पड़ती है। OS/2, विंडोज NT और विंडोज 2000 इस वन टू वन रिलेशनशिप मॉडल का प्रयोग करते हैं।
इस लेख से सम्बंधित यदि आपका कोई भी सवाल या सुझाव है, तो आप उसे नीचे कमेंट में लिख सकते हैं।