/ / एक बार धागे की उपज होने पर, ऑपरेटिंग सिस्टम निष्पादन को एक मूर्ति प्रक्रिया में बदल देगा? - लिनक्स, मल्टीथ्रेडिंग, ऑपरेटिंग-सिस्टम, मल्टीप्रोसेसिंग

एक बार थ्रेड पैदा होने के बाद, ऑपरेटिंग सिस्टम निष्पादन को मूर्ति प्रक्रिया में बदल देगा? - लिनक्स, मल्टीथ्रेडिंग, ऑपरेटिंग सिस्टम, मल्टीप्रोसेसिंग

मैं ऑपरेटिंग सिस्टम में नया हूँ इसलिए मैं इस अवधारणा को समझ नहीं पाया

एक बार धागे की उपज होने पर, ऑपरेटिंग सिस्टम चालू कॉलिंग थ्रेड की प्राथमिकता को बदलने के लिए निष्पादन को एक मूर्ति प्रक्रिया में बदल देगा। ??? यदि हाँ तो कैसे नहीं तो कैसे ??????

उत्तर:

जवाब के लिए 2 № 1

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

"कैसे" मूल रूप से इस प्रकार है:

  1. ओएस संरक्षित मोड में प्रवेश करता है और अनुसूचक को यह देखने के लिए कहता है कि क्या कोई अन्य तैयार-से-थ्रेड रन है।

  2. अगर वहाँ है, एक संदर्भ स्विच जगह लेता है और पुनर्स्थापित करने के लिए उपयोगकर्ता संदर्भ नए थ्रेड के संदर्भ में स्विच किया जाता है और पुराने थ्रेड का संदर्भ संग्रहीत होता है।

  3. कर्नेल उपयोगकर्ता स्थान पर वापस स्विच करता है, उपयोगकर्ता के उस थ्रेड के संदर्भ को पुनर्स्थापित करता है जिसे वह चलाना चाहता है।

कुछ OS में रेडी-टू-रन के अलग-अलग पूल हैंअनुसूचक से बचने के लिए प्रत्येक कोर के धागे "एक बड़ा लॉक" होता है जो इंटर-कोर सिंक्रनाइज़ेशन के कारण संदर्भ स्विच को धीमा कर देता है। ऐसा ओएस वास्तव में उपज नहीं सकता है यदि सभी तैयार-टू-रन थ्रेड्स अन्य कोर के "स्वामित्व" हैं, या यह तय कर सकता है कि यह स्थिति अंतर-कोर सिंक्रनाइज़ेशन को सही ठहराती है और अन्य कोर को एक रेडी-टू-रन चलाने के लिए जांचती है धागा (या "व्यापार" धागे)।