के बीच अंतर फ्रीबीएसडी शेड्यूलर और लिनक्स शेड्यूलर के बीच क्या अंतर है?फ्रीबीएसडी शेड्यूलर और लिनक्स शेड्यूलर
उत्तर
कई शेड्यूलर उपलब्ध हैं। यह उत्तर डिफ़ॉल्ट शेड्यूलर मानता है: सीएफएस (लिनक्स) और यूएलई (फ्रीबीएसडी)।
CFSपूरी तरह से उचित अनुसूचक के लिए छोटा है। सबसे उल्लेखनीय अंतर यह है कि सीएफएस प्रक्रिया चयन के लिए रन कतारों पर आधारित नहीं है। इसके बजाए, यह ओ (लॉग एन) जटिलता के साथ एक लाल-काले पेड़ का उपयोग करता है जिसे सीपीयू समय व्यतीत किया जाता है।
एक और उल्लेखनीय विस्तार यह है कि सीएफएस अपने समय लेखांकन के लिए नैनोसेकंड का उपयोग करता है। Kernel Trap से:
सीएफएस nanosecond के विवरण का स्तर लेखांकन का उपयोग करता है और किसी भी jiffies या अन्य हर्ट्ज विस्तार पर निर्भर नहीं करता। इस प्रकार सीएफएस शेड्यूलर की 'टाइम्सलाइस' की कोई धारणा नहीं है और इसमें कोई भी हेरिस्टिक नहीं है। सिर्फ एक ही केंद्रीय ट्यूनेबल है:
/proc/sys/kernel/sched_granularity_ns
जो धुन पर 'सर्वर' (अच्छा बैचिंग) वर्कलोड के लिए 'डेस्कटॉप' (कम सुप्तावस्था) से अनुसूचक इस्तेमाल किया जा सकता। यह डेस्कटॉप वर्कलोड के लिए उपयुक्त सेटिंग पर डिफ़ॉल्ट है। SCHED_BATCH को सीएफएस शेड्यूलर मॉड्यूल द्वारा भी संभाला जाता है।
ULE पारंपरिक बीएसडी शेड्यूलर का उत्तराधिकारी है। यह एसएमपी सिस्टम के साथ-साथ यूनिप्रोसेसर सिस्टम पर भी बेहतर प्रदर्शन प्रदान करता है। यह रन कतार और समय स्लाइस के साथ एक और पारंपरिक डिजाइन का पालन करता है। यह निष्पक्ष होने का प्रयास करता है, लेकिन इंटरेक्टिव प्रक्रियाओं का पक्ष लेने के लिए निर्देश दिया जा सकता है।
सीएफएस स्रोत का अध्ययन करते समय यूएलई के लेखक द्वारा कुछ निष्कर्षों के लिए यहां link है। वे टिप्पणी में सीएफएस शेड्यूलर में एल्गोरिदम की जटिलता (जिस पर अत्यधिक बहस हुई है) पर भी चर्चा करते हैं।
दोनों शेड्यूलर डेस्कटॉप उपयोग के लिए उपयुक्त हैं। kern.sched.interact
सेट के साथ, यूएलई इंटरैक्टिव प्रक्रियाओं का पक्ष लेता है। इसके बिना, सीएफएस और यूएलई समान रूप से उचित होना चाहिए।
यूएलई कोड की लगभग 3000 लाइनों पर भूमि है, जबकि सीएफएस उस के दोहरे के करीब धक्का दे रहा है।
यह स्टैक ओवरफ्लो के लिए ऑफ-विषय है। [यूनिक्स और लिनक्स] पर इस प्रश्न को पोस्ट करने के लिए शायद अधिक उपयुक्त (http://unix.stackexchange.com)। – Graham