विषय-सूचि
थ्रेड क्या है? (thread in operating system in hindi)
किसी भी ऑपरेटिंग सिस्टम के प्रोसेस के अंदर थ्रेड execution का एक रास्ता होता है। इसके अलावे एक प्रोसेस के अंदर एक से ज्यादा थ्रेड भी हो सकते हैं।
मल्टीथ्रेडिंग क्यों?
थ्रेड को लाइटवेट प्रोसेस भी कहा जाता है। किसी प्रोसेस को बहुत सारे थ्रेड में विभाजित कर देते हैं और स्मनान्तारीकरण को प्राप्त करते हैं। उदाहरण के लिए किसी ब्राउज़र में बहुत सारे टैब्स को थ्रेड की तरह देखा जा सकता है।
एमएस वर्ड कई सारे थ्रेड का प्रयोग करता है- एक थ्रेड को टेक्स्ट को फॉर्मेट करने के लिए, दूसरे थ्रेड से प्रोसेस इनपुट करने के लिए, इत्यादि। मल्टीथ्रेडिंग के और भी फायदे हैं जिन्हें हम आपको बतायेंगे।
प्रोसेस vs थ्रेड?
इन दोनों के बीच में सबसे बड़ा अंतर यही है कि किसी भी समान प्रोसेस के अंदर सारे थ्रेड शेयर्ड मेमोरी स्पेस में रन होता है जबकि प्रोसेसर अलग मेमोरी स्पेस में रन होते हैं।
थ्रेड्स प्रोसेस की तरह एक-दूसरे से स्वतंत्र नहीं होते और इसके परिणामस्वरूप थ्रेड्स कोड सेक्शन में दूसरे थ्रेड्स के साथ डाटा सेक्शन और ऑपरेटिंग सिस्टम रिसोर्सेज जैसे कि ओपन फाइल्स और सिग्नल्स को शेयर करते हैं। लेकिन प्रोसेस की तरह ही थ्रेड का अपना अलग प्रोग्राम काउंटर (PC), रजिस्टर सेट और एक स्टैक स्पेस होता है।
थ्रेड के प्रोसेस पर फायदे (benefits of threads in os in hindi)
1. Responsiveness: अगर प्रोसेस को एक से ज्यादा थ्रेड में विभाजित कर दिया जाए और एक थ्रेड अपना execution को पूरा कर ले तब इसके आउटपुट को जल्द से जल्द रिस्पांस दिया जा सकता है।
2. Faster context switch: थ्रेड्स के बीच कॉन्टेक्स्ट स्विच टाइम प्रोसेस कॉन्टेक्स्ट स्विच के टाइम से बहुत कम होता है। प्रोसेस कॉन्टेक्स्ट स्विच का अर्थ हुआ CPU के लिए ज्यादा ओवरहेड।
3. Effective Utilization of Multiprocessor system: अगर हमारे पास एक सिंगल प्रोसेस में एक से ज्यादा थ्रेड हो तब हम एक से ज्यादा प्रोसेसर में एक से ज्यादा थ्रेड को शेड्यूल कर सकते हैं। ये प्रोसेस के एक्सीक्यूट होने की गति को बढ़ा देता है।
4. Resource sharing: रिसोर्सेज जैसे कि कोड, डाटा और फाइल को किसी प्रोसेस के अंदर सभी थ्रेड के बीच शेयर किया जा सकता है।
नोट: स्टैक और रजिस्टर को थ्रेड्स के बीच शेयर नहीं किया जा सकता। हर थ्रेड का अपना स्टैक और रजिस्टर होता है।
5. Communication: एक से ज्यादा थ्रेड्स के बीच का संवाद आसान होता है क्योंकि थ्रेड एक ही एड्रेस स्पेस को साझा करते हैं। जबकि हमे प्रोसेस में दो प्रोसेस के बीच कम्युनिकेशन के लिए कुछ ख़ास कम्युनिकेशन तकनीक को फॉलो करना पड़ता है।
6. Enhanced Throughput of the system: अगर प्रोसेस को बहुत सारे थ्रेड्स में विभाजित किया गया है और हर थ्रेड फंक्शन को एक जॉब की तरह देखा जाता है तब एक यूनिट समय में पूरे होने वाले जॉब्स की संख्या बढ़ जाती है। इसीलिए सिस्टम का थ्रूपुट भी बढ़ता है।
यूजर लेवल थ्रेड और कर्नेल लेवल थ्रेड (user level thread and kernel level thread)
थ्रेड्स दो प्रकार के होते हैं- यूजर लेवल थ्रेड और कर्नेल लेवल थ्रेड। इन दोनों को आप नीचे दिए गये चार्ट की मदद से समझ सकते हैं:
यूजर लेवल थ्रेड | कर्नेल लेवल थ्रेड |
---|---|
यूजर थ्रेड को यूजर द्वारा इमप्लेमेंट किया जाता है। | कर्नेल थ्रेड को ऑपरेटिंग सिस्टम द्वारा इमप्लेमेंट किया जाता है। |
ऑपरेटिंग सिस्टम यूजर लेवल थ्रेड को नहीं पहचान पाता। | कर्नेल थ्रेड को ऑपरेटिंग सिस्टम पहचान लेते हैं। |
यूजर थ्रेड को आसानी से इमप्लेमेंट किया जा सकता है। | कर्नेल थ्रेड का इम्प्लीमेंटेशन कठिन है। |
कॉन्टेक्स्ट स्विच टाइम कम होता है। | कॉन्टेक्स्ट स्विच टाइम ज्यादा होता है। |
कॉन्टेक्स्ट स्विच को किसी हार्डवेयर सपोर्ट की जरूरत नहीं पड़ती। | हार्डवेयर सपोर्ट की जरूरत पड़ती है। |
अगर एक यूजर लेवल थ्रेड ब्लॉकिंग ऑपरेशन परफॉर्म करता है तब सारे प्रोसेस को ब्लाक कर दिया जाता है। | अगर एक कर्नेल थ्रेड ऑपरेशन ब्लॉकिंग ऑपरेशन परफॉर्म करता है तो बांकी थ्रेड execution जारी रख सकते हैं। |
उदाहरण: जावा थ्रेड, POSIX थ्रेड्स इत्यादि। | उदाहरण: विंडो सोलारिस |
इस लेख से सम्बंधित यदि आपका कोई भी सवाल या सुझाव है, तो आप उसे नीचे कमेंट में लिख सकते हैं।
Sir
T
My question
Single threaded process and multiple vs threaded process
Sir
My question
Explain thered in linux
very well explained thank uhh so much sir
Sir Your content is very useful. But This font is not Bold therefore some reading problem.