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