15.04, समय-साझाकरण या वास्तविक समय में नियोजित तंत्र क्या जानना चाहते हैं, मुझे पूरा यकीन है कि इसके फीफो, राउंड रॉबिन, एसजेएफ?
पुनश्च: लिनक्स के लिए नया
15.04, समय-साझाकरण या वास्तविक समय में नियोजित तंत्र क्या जानना चाहते हैं, मुझे पूरा यकीन है कि इसके फीफो, राउंड रॉबिन, एसजेएफ?
पुनश्च: लिनक्स के लिए नया
जवाबों:
प्रक्रिया अनुसूचक
एक प्रक्रिया अनुसूचक प्रक्रियाओं को निष्पादित करने के लिए सीपीयू संसाधन आवंटन को संभालता है, और इंटरैक्टिव प्रदर्शन को अधिकतम करते हुए समग्र सीपीयू उपयोग को अधिकतम करने का लक्ष्य रखता है।
चूंकि कर्नेल 2.6.23 (जो कि हार्डी 8.04 एलटीएस के रूप में होगा) पूरी तरह से उचित समयबद्धक (सीएफएस) "घूर्णन सीढ़ी की समय सीमा" पर आधारित है। Kernel.org से अवलोकन :
सीएफएस का अर्थ "पूरी तरह से उचित समयबद्धक" है, और इंगो मोलनार द्वारा कार्यान्वित नया "डेस्कटॉप" प्रक्रिया अनुसूचक है और लिनक्स 2.6.23 में विलय कर दिया गया है। यह पिछले वेनिला शेड्यूलर के SCHED_OTHER अन्तरक्रियाशीलता कोड के लिए प्रतिस्थापन है।
सीएफएस के 80% डिजाइन को एक ही वाक्य में अभिव्यक्त किया जा सकता है: सीएफएस मूल रूप से वास्तविक हार्डवेयर पर एक "आदर्श, सटीक मल्टी-टास्किंग सीपीयू" मॉडल करता है।
"आदर्श मल्टी-टास्किंग सीपीयू" एक (गैर-मौजूद :-)) सीपीयू है जिसमें 100% भौतिक शक्ति होती है और जो प्रत्येक कार्य को सटीक / समान गति से, समानांतर रूप से, प्रत्येक 1 / nr_running गति पर चला सकता है। उदाहरण के लिए: यदि 2 कार्य चल रहे हैं, तो यह प्रत्येक को 50% भौतिक शक्ति पर चलाता है --- अर्थात, वास्तव में समानांतर में।
असली हार्डवेयर पर, हम एक बार में केवल एक ही कार्य चला सकते हैं, इसलिए हमें "वर्चुअल रनटाइम" की अवधारणा को पेश करना होगा। किसी कार्य का वर्चुअल रनटाइम तब निर्दिष्ट होता है जब उसका अगला टाइमलाइन ऊपर वर्णित आदर्श मल्टी-टास्किंग सीपीयू पर निष्पादित करना शुरू कर देगा। व्यवहार में, किसी कार्य का वर्चुअल रनटाइम उसका वास्तविक रनटाइम है जो कुल रनिंग कार्यों की संख्या को सामान्य करता है।
मैं / हे अनुसूचक
इनपुट / आउटपुट शेड्यूलिंग वह विधि है जिसे ऑपरेटिंग सिस्टम यह तय करने के लिए उपयोग करता है कि किस क्रम में 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