क्या OS प्रत्येक प्रक्रिया को एक अलग कोर में आवंटित करता है?


15

ठीक है मैं क्वाड कोर से बचने के लिए क्लासिक तर्क जानता हूं। आवेदन स्तर पर, अधिकांश एप्लिकेशन कई कोर के लिए नहीं लिखे गए हैं। अधिकांश डेस्कटॉप सॉफ्टवेयर को भी समानांतर की आवश्यकता नहीं है।

हालांकि, ओएस स्तर पर, यह स्पष्ट लगता है कि ओएस विभिन्न कोर में प्रक्रियाओं को विभाजित करेगा। यह अधिक कोर पाने के लिए अपने आप से एक तर्क नहीं होगा? क्या यह कई स्थितियों में बहुत मदद नहीं करता है? आपको कुछ सीपीयू सघन कार्य मिल रहे हैं - उन प्रक्रियाओं में से प्रत्येक अपने शत-प्रतिशत कोर को गले लगा रहा हो सकता है, लेकिन मैं अभी भी वेब ब्राउज़ कर सकता हूं और मेरे अंतिम कोर पर सुपरयूजर पर सवाल पूछ सकता हूं .... सही है?


इस प्रश्न और उत्तर के लिए एक मौलिक प्रवाह यह धारणा है कि एक एकल प्रक्रिया एकल-सूत्र है। कई उदाहरणों में ऐसा नहीं है। और यहां तक ​​कि अगर प्रक्रिया एकल-धागा है, तो कई सिस्टम लाइब्रेरी / डीएल अपने स्वयं के धागे जोड़ते हैं।
harrymc

जवाबों:


12

ओएस कई कोरों में एक एकल एकल-थ्रेडेड प्रक्रिया को विभाजित नहीं कर सकता है (हालांकि यह बदल सकता है कि कौन सा कोर किस एप्लिकेशन पर चल रहा है, लेकिन यह एक अलग सवाल है), हालांकि यह कई प्रक्रियाओं को चला सकता है, प्रत्येक अपने स्वयं के कोर पर। तो, हाँ, अगर आपके पास पृष्ठभूमि में कई प्रोसेसर गहन अनुप्रयोग चल रहे हैं, तो यह संभव है कि आपके पास अभी भी एक खाली बैठने के लिए एक कोर होगा या कुछ भी नहीं जिसका आप अन्य अनुप्रयोगों को चलाने के लिए उपयोग कर सकते हैं।


यहाँ महत्वपूर्ण शब्द है अगर आपके पास कई प्रोसेसर गहन अनुप्रयोग हैं - यह अधिकांश उपयोगकर्ताओं के लिए एक असामान्य स्थिति है।
गिल्स एसओ- बुराई को रोकें '

जवाब के लिए धन्यवाद। हाँ बाद वाला मामला वह है जिसका मैं वर्णन करने का प्रयास कर रहा हूँ।
डग टी।

3

@ हैवीड के उत्तर में जोड़ने के लिए, इसका कारण यह है कि ओएस में यह निर्धारित करने की क्षमता नहीं है कि प्रक्रिया के किन हिस्सों को समानांतर में चलाना ठीक है और जो नहीं हैं। यदि कोई प्रोग्राम समानांतर कोर पर चलाने के लिए डिज़ाइन नहीं किया गया है, तो आप उस एप्लिकेशन के भीतर रूटीन रख सकते हैं जो एक ही समय में क्रमिक रूप से चलने के लिए डिज़ाइन किया गया है। यह सभी प्रकार के मुद्दों का कारण बन सकता है (जैसे कि 2 रूटीन एक ही मेमोरी ब्लॉक का उपयोग करते हैं लेकिन एक ही समय में चलाने के लिए नहीं होते हैं)।

ओएस कई प्रक्रियाओं के लिए कई कोर का उपयोग कर सकता है क्योंकि यह वैसे भी करता है, लेकिन कई कोर में एकल-कोर एप्लिकेशन को फैलाने से सभी प्रकार के अप्रत्याशित व्यवहार का कारण होगा।


धन्यवाद। मैं समझता हूँ कि। मेरा सवाल शायद ख़राब हो। मेरा मतलब अलग कोर पर प्रक्रियाओं को डालने वाले ओएस के बारे में अधिक पूछना है। किसी भी तरह से जादुई रूप से एकल पिरोया प्रक्रिया अवधि कोर नहीं बना रही है।
डग टी।

3

जब यह नीचे आता है, तो इससे कोई फर्क नहीं पड़ता कि कोई प्रोसेसर 1% उपयोग या 95% उपयोग में है (जब तक यह 95% पर स्थिर है और चरम पर नहीं है), प्रोग्राम उसी गति से चलेंगे जब तक कि यह 100% मार नहीं है। अप्रयुक्त सीपीयू चक्र बस बर्बाद हो जाते हैं।

इस वजह से, विंडोज 7 (संगत प्रोसेसर पर) में एक तकनीक है जिसे "कोर पार्किंग" के रूप में जाना जाता है जो मूल रूप से बिजली बचाने के लिए आपके कंप्यूटर पर अप्रयुक्त कोर को निष्क्रिय करता है।

सिंगल थ्रेडेड एप्लिकेशन को स्वचालित रूप से वैकल्पिक कोर में डाल दिया जाता है - मुझे इसके पीछे की तकनीक पर यकीन नहीं है, लेकिन मुझे पता है कि यह काफी अच्छी तरह से काम करता है।


2

आपकी प्रारंभिक भावनाएं सही हैं - कई कोर की ओर एक नकारात्मक तिरछा है, और यह वास्तव में योग्य नहीं है।

दिन में जब अधिकांश उपयोगकर्ता केवल सरल वर्ड प्रोसेसिंग के लिए अपने डेस्कटॉप पीसी का उपयोग करते हैं, तो एक तर्क हो सकता है। लेकिन इन दिनों, कई टैब वाले ब्राउज़र, अपनी प्रक्रिया में प्रत्येक (क्रोम और अर्थात टैब के लिए प्रक्रिया स्तर पृथक्करण) के साथ प्लस वेब पेजों के भीतर वीडियो डिकोडर जैसी चीजें और अतिरिक्त कार्य जो आसानी से ऑन-ऑफ-फ्लाई की तरह लोड किए जा सकते हैं। प्रभाव उर्फ ​​css3 का प्रतिपादन, यहां तक ​​कि अकेले ब्राउज़र बहुत अधिक राम और कुछ कोर के लिए एक कारण का औचित्य साबित कर सकता है।

इस तथ्य को जोड़ें कि कुछ उपयोगकर्ता इस पीसी पर गेमिंग भी कर सकते हैं, या गैराजबैंड, इमोवी, हैंडब्रेक, मल्टीपल कोर जैसे टूल का उपयोग करना एक बहुत बड़ा लाभ हो सकता है।

यह मान लेना सही नहीं है कि आपको अधिकतम करने की आवश्यकता है (यानी एक कोर पर 100% सीपीयू का उपयोग) दूसरे कोर के लिए एक कोर उपयोगी होना चाहिए। क्योंकि हम यहां समानता की बात कर रहे हैं। एक सीपीयू के भीतर कार्य स्विचिंग आम तौर पर संचालन का एक बैच करता है इससे पहले कि यह एक और प्रक्रिया में अपने ढेर को स्वैप करता है। ये सभी कार्य सीपीयू बाउंड नहीं हैं, इसलिए आपको कोर लॉक होने के बावजूद सीपीयू स्पाइक दिखाई नहीं देगा।

मूल रूप से, आप सही हैं, लेकिन कोर की सबसे कुशल संख्या क्या है? 2? 4? 12? यह सबसे अधिक संभावना उपयोगकर्ताओं की आदतों पर निर्भर करेगा ... मैं ज्यादातर उपयोगकर्ताओं के लिए यह 2-4 करता हूं, लेकिन मैं केवल अनुमान लगा रहा हूं।

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