एक एकल कोर सीपीयू पर, प्रत्येक प्रक्रिया ओएस में चलती है, और सीपीयू एक प्रक्रिया से दूसरी प्रक्रिया में अपने आप का सबसे अच्छा उपयोग करने के लिए कूदता है। एक प्रक्रिया में कई धागे हो सकते हैं, इस मामले में सीपीयू संबंधित प्रक्रियाओं पर चलने पर इन धागे के माध्यम से चलता है।एसएमपी कोर, प्रक्रियाएं, और थ्रेड एक साथ कैसे काम करते हैं?
अब, एक बहु कोर सीपीयू पर:
कोर हर प्रक्रिया में एक साथ चलाने, या कोर समय से एक खास बिंदु पर विभिन्न प्रक्रियाओं में अलग से चला सकते हैं? उदाहरण के लिए, आपके पास प्रोग्राम ए दो धागे चल रहा है। क्या एक दोहरी कोर सीपीयू इस कार्यक्रम के दोनों धागे चला सकता है? मुझे लगता है कि अगर हम OpenMP जैसे कुछ उपयोग कर रहे हैं तो जवाब हाँ होना चाहिए। लेकिन जब इस ओपनएमपी-एम्बेडेड प्रक्रिया में कोर चल रहे हैं, तो क्या कोर में से एक बस अन्य प्रक्रिया में स्विच कर सकता है?
एकल कोर के लिए बनाए गए प्रोग्रामों के लिए, 100% पर चलते समय, प्रत्येक कोर का CPU उपयोग क्यों वितरित किया जाता है? (उदाहरण के लिए 80% और 20% का दोहरी कोर सीपीयू। इस मामले के लिए सभी कोरों का उपयोग प्रतिशत हमेशा 100% तक जोड़ता है।) क्या कोर प्रत्येक तरीके को प्रत्येक थ्रेड को चलाने के लिए एक दूसरे की मदद करने की कोशिश करते हैं, कुछ तरीकों से ?
हार्डवेयर कैसे काम करता है इसका न्यूनतम उदाहरण: http://stackoverflow.com/a/33651438/895245 –