2014-05-16 5 views
9

क्या लिनक्स शेड्यूलर fork() के बाद पिता प्रक्रिया में बाल प्रक्रिया को चलाने के लिए पसंद करता है?क्या लिनक्स शेड्यूलर फोर्क() के बाद बाल प्रक्रिया को चलाने के लिए पसंद करता है?

आमतौर पर, काँटेदार प्रक्रिया में कुछ की exec निष्पादित करेंगे तरह हां, तो यह (लिखने पर प्रतिलिपि रोकने के लिए) पिता प्रक्रिया से पहले चलाने के लिए बच्चे की प्रक्रिया बताने के लिए बेहतर है।

मुझे लगता है कि बच्चा इसे बनाए जाने के बाद पहले ऑपरेशन के रूप में exec निष्पादित करेगा।

मेरी धारणा है (कि शेड्यूलर बाल प्रक्रिया को प्राथमिकता देगा) सही है। यदि नहीं, क्यों? यदि हां, तो पहले बच्चे को चलाने के और कारण हैं?

उत्तर

6

एक सामान्य उत्तर के लिए The Linux Programming Interface (pg. 525) के शब्दों में: - माता-पिता या बच्चे - अगले सीपीयू की पहुंच है

एक fork() के बाद, यह अनिश्चित जो प्रक्रिया है। (एक मल्टीप्रोसेसर प्रणाली पर, वे दोनों एक साथ एक सीपीयू के लिए उपयोग हो सकता है।)

पुस्तक कर्नेल संस्करणों में अंतर के बारे में पर चला जाता है और यह भी सीएफएस/लिनक्स 2.6.32 का उल्लेख है:

[ ...] लिनक्स 2.6.32 के बाद से, यह एक बार माता-पिता है जो डिफ़ॉल्ट रूप से fork() के बाद पहले चलाया जाता है। यह डिफॉल्ट लिनक्स-विशिष्ट /proc/sys/kernel/sched_child_runs_first फ़ाइल में गैर-शून्य मान निर्दिष्ट करके बदला जा सकता है।

This behaviour is still present with CFS हालांकि इस सुविधा के भविष्य के लिए some concerns हैं। सीएफएस कार्यान्वयन को देखते हुए, यह seems to schedule बच्चे के सामने माता-पिता।

आपके लिए जाने का तरीका /proc/sys/kernel/sched_child_runs_first को गैर-शून्य मान पर सेट करना होगा।

संपादित करें:This answer डिफ़ॉल्ट व्यवहार का विश्लेषण करती है और sched_child_runs_first लिए तुलना करता है।

3

मामले में जहां बच्चे पहला अवसर आप कांटा के बजाय vfork उपयोग कर सकते हैं पर exec कॉल के लिए। vfork बच्चे को _exit या exec * कॉल करने तक माता-पिता को निलंबित करता है। हालांकि, एक बार जब यह exec पर कॉल करता है तो कोड को डिस्क से लोड होने पर बच्चे को निलंबित कर दिया जाएगा। इस मामले में, बच्चे के पास जारी रखने से पहले माता-पिता को जारी रखने का अच्छा मौका होता है।

+0

ठीक है, धन्यवाद, लेकिन सामान्य मामले के बारे में क्या। क्या शेड्यूलर बच्चे को पिता को पसंद करेगा? – Farseer

+3

vfork के साथ मेरी पढ़ाई यह है कि बच्चे को कांटा के साथ पसंद किया जाता है, यह अनिर्दिष्ट है। –

संबंधित मुद्दे