एम: एन (हाइब्रिड) थ्रेडिंग का उद्देश्य क्या है?


12

दूसरे शब्दों में, हाइब्रिड थ्रेडिंग के क्या फायदे हैं : 1: 1 (कर्नेल केवल) और एन: 1 (केवल उपयोगकर्ता) थ्रेडिंग?

यह उपयोगकर्ता-स्तर थ्रेड और कर्नेल-स्तर थ्रेड्स के बीच अंतर क्या है?


1
कृपया शीघ्र ही अवधारणाओं को समझाएं या उपयुक्त संदर्भों से लिंक करें।
राफेल

3
उम, कि तुम दोनों का लाभ मिलता है? (@ राफेल डन।)
गाइल्स का SO-

इसके अलावा, विकिपीडिया लेख कुछ (डिस) लाभ को सूचीबद्ध करता है। आप किस विशिष्ट रूप से देख रहे हैं?
राफेल

जवाबों:


7

मुझे लगता है कि हाइब्रिड थ्रेडिंग एक थ्रेड पूल के समान है ।

थ्रेड पूल में, आप "कार्यों" को निष्पादित करने के लिए कर्नेल थ्रेड्स का उपयोग कर रहे हैं , जहां तुलना में बहुत अधिक हो सकता है । प्रत्येक कार्य (कर्नेल थ्रेडिंग) के लिए एक थ्रेड का उपयोग करने पर लाभ यह है कि आप कम संसाधनों का उपभोग करते हैं, जैसे मेमोरी (आभासी और भौतिक दोनों) और कर्नेल ऑब्जेक्ट (कम से कम विंडोज थ्रेड्स के विशिष्ट मामले में, लेकिन मैं कल्पना करता हूं कि अन्य OS समान हैं इस संबंध में)। आपको कम संदर्भ स्विच भी मिलते हैं, जो प्रदर्शन बढ़ाता है (आदर्श मामले में, जहां आपके पास प्रोसेसर के रूप में कई चलने वाले धागे हैं, आपके पास लगभग कोई संदर्भ स्विच नहीं हो सकता है)।NMMN

केवल थ्रेडिंग करने वाले उपयोगकर्ता पर लाभ यह है कि आप कई सीपीयू या कई सीपीयू कोर का लाभ उठा सकते हैं। और अगर एक कार्य अवरुद्ध हो जाता है, तो आप उपलब्ध सीपीयू को अधिक कुशलता से उपयोग करने के लिए एक और कर्नेल थ्रेड बना सकते हैं।

तो, आपको कुछ अतिरिक्त उपयोगकर्ता-मोड शेड्यूलिंग की कीमत पर दोनों दृष्टिकोणों के फायदे मिलते हैं।

कर्नेल पर केवल शेड्यूलिंग का नुकसान संभवतः बड़ा विलंबता है: यदि पूल में सभी थ्रेड्स व्यस्त हैं और आप नए लघु कार्य जोड़ते हैं, तो निष्पादित होने से पहले आप लंबे समय तक प्रतीक्षा कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.