आज हम computer course in hindi मे हम thread in os in hindi के बारे में जानकारी देते क्या होती है तो चलिए शुरु करते हैं-
thread in os in hindi:-
इस कंट्रोल के flow को थ्रेड (thread) कहा जाता है और हम जानते हैं कि प्रोग्राम , instructions का एक set है । ये instruction single program के कई भागों का निर्माण करते हैं और प्रोग्राम के प्रत्येक Independent भाग को प्रोग्राम का थ्रेड (thread) कहा जाता है ।
Types of thread in hindi (थ्रेड) :-
( 1 ) single thread (सिंगल थ्रेड)
( 2 ) multi thread (मल्टि थ्रेड)
जिस प्रोसेस में कंट्रोल का केवल एक flow होता है हम उसे single thread ( लाइट वेट प्रोसेस ) कहते है ।
जिस प्रोसेस में कंट्रोल के कई flow होते हैं , उसे multi thread ( हेवी वेट प्रोसेस ) कहते है ।
एक thread , CPU उपयोग की मूलभूत इकाई है और इसमें एक thread ID , एक program counter , एक register set तथा एक steak होता हैं । दूसरे thread के साथ यह कोड सेक्शन एवं डाटा सेक्शन और दूसरे ऑपरेटिंग सिस्टम resource , जैसे ओपन फाइल और signal को share करता है । इसमें एक traditional single threaded process और एक मल्टिथ्रेडेड प्रोसेस के बीच के अंतर को किया गया है ।
इस समय में डेस्कटॉप PCs में use कई software package , multithreaded होते हैं । यह एक एप्लिकेशन को कंट्रोल के Different threads के साथ एक separate process के रूप में executed किया जाता है और जब तक एक अन्य thread नेटवर्क से पुनः डाटा प्राप्त करता है , वेब ब्राउसर के पास एक thread डिस्प्ले इमेज या टेक्स्ट हो सकता है और एक वर्ड प्रोसेसर के पास ग्राफिक्स को डिसप्ले करने के लिए एक thread और user से की स्ट्रोक पढ़ने के लिए एक अन्य thread हो सकता है तथा ब्रेकग्राउंड में spelling और ग्रामर चेकिंग के लिये एक तीसरा thread भी हो सकता है ।
thread और रीमोट प्रोसिजर कॉल ( RPC ) सिस्टम्स में महत्वपूर्ण हैं और साधारण फंक्शन कॉल के समान RPC एक communication mechanism available करवा कर interprocess communication देता है । इसमें RPC server multithread होते हैं । जब किसी सर्वर को कोई संदेश प्राप्त होता है और तो separate thread का use कर उसके according कार्य किया जाता है । इससे सर्वर एक ही समय में कई कार्य कर सकता है।
Advantage of Multithreaded Programming:-
1. Responsiveness:-
इसमें प्रोग्राम के किसी भाग के block हो जाने पर अथवा उसके द्वारा बड़ा कार्य करने पर भी multithreading उसे निरंतर जारी रहने की अनुमति देती है और इससे user का responsibility बढ़ जाता है ।
2. resource sharing :-
इसमें सामान्य thread memory और associated process के resource को share करते हैं और code sharing का फायदा यह है कि यह एक एप्लिकेशन को समान address space में विभिन्न thread के activities करने की permission देता है ।
3. Economy:-
इसमें प्रोसेस निर्माण के लिए मेमोरी और resource का एलोकेशन बहुत महँगा होता है और इसके विपरीत , switch thread को बनाना सस्ता है , क्योंकि thread संबंधित प्रोसेस के resource को share करते हैं जिससे सामान्य , प्रोसेस को बनाने और मेनेज करने में thread की तुलना में बहुत अधिक समय लगता है ।
4. Use of Multiprocessor Architecture :-
इसमें multithreading के फायदे multiprocessor architecture में बढ़ जाते हैं और जहाँ प्रत्येक thread अलग-अलग प्रोसेसर पर parallel run हो सकते हैं और कितने CPU उपलब्ध है , इससे प्रभावित हुए बिना single thread process केवल एक CPU पर ही रन की जाती सकती है । एक मल्टि- CPU मशीन पर multithreading से concurrency बढ़ती है । इसमें एक Single - Processor Architecture में , प्रत्येक thread के बीच CPU इतनी तेजी से गति करते हैं जिससे की Parallelism हो जाता है । परंतु reality में एक समय में एक ही thread रन होता है ।
user and Kernel threads:-
1. User threads:-
इस user thread को kernel thread की तुलना में अधिक सपोर्ट किया जाता है और user पर एक thread library द्वारा ये implement किये जाते हैं । इसके library बिना kernel की सहायता के thread निर्माण , शेडयूलिंग और Management की सुविधाएँ उपलब्ध करवाती है । इसमें चूंकि kernel user - level thread से Unaware होता है । और इसलिये thread के निर्माण और शेडयूलिंग का कार्य बिना kernel intervention की आवश्यकता के user space में किया जाता है और इसी कारण , यूजर - लेवल थ्रेड को बनाना और मेनेज करना तीव्र गति से होता है , लेकिन इसकी कुछ कमजोरियाँ भी है ।
2. kernel thread:-
kernel thread सीधे ऑपरेटिंग सिस्टम द्वारा support किये जाते हैं । kernel , kernel space में thread निर्माण , शेड्यूलिंग और management का कार्य करता है । thread management ऑपरेटिंग सिस्टम द्वारा किया जाता है , इसलिए kernel thread का निर्माण और management , User threads की तुलना में धीमी गति से होता है । kernel , thread management करते हैं , इसलिये यदि एक thread blocking system call को करता है तो kernel Execution के लिए app में दूसरे thread को schedule कर सकता है । एक multiprocessor environment में , kernel विभिन्न प्रोसेसर पर thread को schedule कर सकता है । ऑपरेटिंग सिस्टम , जैसे विन्डोज NT , विन्डोज 2000 , Solaries 2 , BeOS और Tru4 UNIX ( डिजिटल यूनिक्स ) kernel thread को support करते हैं । जावा लैंग्वेज में भी thread के लिये support दिया गया है । परंतु , चूंकि जावा thread का निर्माण और management जावा virtual machine ( JVM ) द्वारा किया जाता है , इसीलिये ये आसानी से न तो यूजर thread और न ही kernel thread में आते हैं ।
टिप्पणियाँ
एक टिप्पणी भेजें