15.04 में किस प्रकार के शेड्यूलिंग एल्गोरिदम का उपयोग किया जाता है? क्या इसे बदलना संभव है?


12

15.04, समय-साझाकरण या वास्तविक समय में नियोजित तंत्र क्या जानना चाहते हैं, मुझे पूरा यकीन है कि इसके फीफो, राउंड रॉबिन, एसजेएफ?

पुनश्च: लिनक्स के लिए नया

जवाबों:


14

प्रक्रिया अनुसूचक

एक प्रक्रिया अनुसूचक प्रक्रियाओं को निष्पादित करने के लिए सीपीयू संसाधन आवंटन को संभालता है, और इंटरैक्टिव प्रदर्शन को अधिकतम करते हुए समग्र सीपीयू उपयोग को अधिकतम करने का लक्ष्य रखता है।

चूंकि कर्नेल 2.6.23 (जो कि हार्डी 8.04 एलटीएस के रूप में होगा) पूरी तरह से उचित समयबद्धक (सीएफएस) "घूर्णन सीढ़ी की समय सीमा" पर आधारित है। Kernel.org से अवलोकन :

सीएफएस का अर्थ "पूरी तरह से उचित समयबद्धक" है, और इंगो मोलनार द्वारा कार्यान्वित नया "डेस्कटॉप" प्रक्रिया अनुसूचक है और लिनक्स 2.6.23 में विलय कर दिया गया है। यह पिछले वेनिला शेड्यूलर के SCHED_OTHER अन्तरक्रियाशीलता कोड के लिए प्रतिस्थापन है।

सीएफएस के 80% डिजाइन को एक ही वाक्य में अभिव्यक्त किया जा सकता है: सीएफएस मूल रूप से वास्तविक हार्डवेयर पर एक "आदर्श, सटीक मल्टी-टास्किंग सीपीयू" मॉडल करता है।

"आदर्श मल्टी-टास्किंग सीपीयू" एक (गैर-मौजूद :-)) सीपीयू है जिसमें 100% भौतिक शक्ति होती है और जो प्रत्येक कार्य को सटीक / समान गति से, समानांतर रूप से, प्रत्येक 1 / nr_running गति पर चला सकता है। उदाहरण के लिए: यदि 2 कार्य चल रहे हैं, तो यह प्रत्येक को 50% भौतिक शक्ति पर चलाता है --- अर्थात, वास्तव में समानांतर में।

असली हार्डवेयर पर, हम एक बार में केवल एक ही कार्य चला सकते हैं, इसलिए हमें "वर्चुअल रनटाइम" की अवधारणा को पेश करना होगा। किसी कार्य का वर्चुअल रनटाइम तब निर्दिष्ट होता है जब उसका अगला टाइमलाइन ऊपर वर्णित आदर्श मल्टी-टास्किंग सीपीयू पर निष्पादित करना शुरू कर देगा। व्यवहार में, किसी कार्य का वर्चुअल रनटाइम उसका वास्तविक रनटाइम है जो कुल रनिंग कार्यों की संख्या को सामान्य करता है।


  • कर्नेल 2.4: O (n) अनुसूचक ; उस कर्नेल के साथ कोई उबंटू रिलीज़ नहीं है।
  • कर्नेल 2.6.0 से 2.6.22: O (1) अनुसूचक । Warty 4.10 (पहली रिलीज़) 2.6.8 का इस्तेमाल किया। गट्स्टी 7.10 आखिरी ऐसा था जिसमें 2.6.22 या उससे कम इस्तेमाल किया गया था।

मैं / हे अनुसूचक

इनपुट / आउटपुट शेड्यूलिंग वह विधि है जिसे ऑपरेटिंग सिस्टम यह तय करने के लिए उपयोग करता है कि किस क्रम में I / O संचालन को स्टोरेज वॉल्यूम में जमा किया जाएगा।

शेड्यूलिंग पर फ़ोरोनिक्स लेख : लिनक्स 3.16: डेडलाइन I / O शेड्यूलर आम तौर पर एक एसएसडी के साथ होता है।


आप grub में विकल्प "एलिवेटर =" को "GRUB_CMDLINE_LINUX_DEFAULT =" में जोड़कर I / O अनुसूचक को बदल सकते हैं।

यह शायद आसान है (sda और समय सीमा मानकर) इसे इस तरह से करना:

  • उपलब्ध अनुसूचियों की सूची दिखाने के लिए:

    cat /sys/block/sda/queue/scheduler
    
  • और एक अनुसूचक को बदलने के लिए (मक्खी पर किया जा सकता है):

    echo deadline > /sys/block/sda/queue/scheduler
    

कर्नेल / git / torvalds / linux.git से


आप देख सकते हैं कि किसके साथ प्रयोग किया जा रहा है (प्राइमरी के रूप में साडा मानते हुए):

cat /sys/block/sda/queue/scheduler

क्या इसका मतलब यह है कि डिफ़ॉल्ट रूप से उबंटू 15.04 में प्रयुक्त शेड्यूलिंग तंत्र समय-साझाकरण एल्गोरिथ्म, सीएफएस है? या यह अन्य, आरआर और फीफो के साथ आता है? मुझे यहाँ मेरी जानकारी मिली: manpages.ubuntu.com/manpages/hardy/man2/…
leslie_lyj

आप हार्डी के लिए मैनपावर देख रहे हैं। यह थोड़ा पुराना है;) 'cfq' डिफ़ॉल्ट है। जोड़ा गया लिंक कर्नेल / git / torvalds / linux.git पर देखें।
रिनविंड

1
... यह डिस्क और सीपीयू अनुसूचक के बीच भ्रामक नहीं है ? वे काफी अलग जानवर हैं। सीपीयू अनुसूचक तय करता है कि आगे कौन सी प्रक्रिया चलती है, और डिस्क अनुसूचक तय करता है कि डिस्क में डेटा के ब्लॉक कैसे पहुंचें। उदाहरण के लिए देखें wiki.archlinux.org/index.php/Maximizing_performance
Rmano

खैर, वास्तव में नहीं, इस सवाल का मुख्य बिंदु यह स्पष्ट करना था कि उबंटू 15.04 किस प्रक्रिया निर्धारण प्रणाली पर चल रहा है। (क्षमा करें यदि मैं स्पष्ट नहीं हो रहा था)
leslie_lyj

2
@ रमनो मैंने माना कि यह विशेष रूप से वास्तव में इसका उपयोग करने के लिए नहीं जानकारी के लिए था। लेकिन मुझ में विक्षिप्त सभी बाहर चला गया: - डी किसी को भी इस के साथ खेलने के लिए एक विशेषज्ञ होने की उम्मीद की जानी चाहिए: एक्स
रिनविंड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.