Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> प्रोग्रामिंग

मल्टीलेवल फीडबैक क्यू (MLFQ): एडाप्टिव CPU शेड्यूलिंग एल्गोरिदम

मल्टीलेवल फीडबैक क्यू (MLFQ) एक CPU शेड्यूलिंग एल्गोरिदम है जो कई रेडी क्यूज को बनाए रखता है, प्रत्येक अलग-अलग प्राथमिकता स्तरों और टाइम क्वांटम मानों के साथ। नई प्रोसेसेज हाइएस्ट प्रायोरिटी क्यू में शुरू होती हैं, और उनके व्यवहार के आधार पर, उन्हें क्यूज के बीच प्रोमोट या डिमोट किया जा सकता है। यह एडाप्टिव दृष्टिकोण इंटरैक्टिव और CPU-इंटेंसिव दोनों प्रोसेसेज की जरूरतों को संतुलित करता है।

मल्टीलेवल फीडबैक क्यू संरचना क्यू 0 (उच्चतम प्राथमिकता) टाइम क्वांटम: 1 क्यू 1 (मध्यम प्राथमिकता) टाइम क्वांटम: 2 क्यू 2 (निम्नतम प्राथमिकता) FCFS CPU नई प्रोसेस यदि टाइम समाप्त हो तो डिमोट करें एजिंग: प्रतीक्षा के बाद प्रोमोट करें प्रोसेस मूवमेंट नियम ? नई प्रोसेसेज क्यू 0 में शुरू होती हैं ? यदि टाइम क्वांटम समाप्त हो जाता है ? अगले निचले क्यू में जाएं ? एजिंग मैकेनिज्म स्टारवेशन को रोकता है

MLFQ कैसे काम करता है

एल्गोरिदम निम्नलिखित प्रमुख सिद्धांतों के साथ संचालित होता है:

  • प्राथमिकता-आधारित शेड्यूलिंग: उच्च प्राथमिकता वाली क्यूज को पहले सर्व किया जाता है

  • वेरिएबल टाइम क्वांटम: उच्च प्राथमिकता वाली क्यूज में छोटे टाइम स्लाइस होते हैं

  • डायनामिक प्राथमिकता समायोजन: प्रोसेसेज व्यवहार के आधार पर क्यूज के बीच चलती हैं

  • एजिंग मैकेनिज्म: लंबे समय से प्रतीक्षा कर रही प्रोसेसेज को प्रोमोट करके स्टारवेशन को रोकता है

उदाहरण

निम्नलिखित विशेषताओं वाली तीन प्रोसेसेज पर विचार करें:

प्रोसेसआगमन समयबर्स्ट समयप्रारंभिक क्यू
P108क्यू 0
P214क्यू 0
P322क्यू 0

क्यू 0 में टाइम क्वांटम = 1, क्यू 1 में टाइम क्वांटम = 2, और क्यू 2 FCFS का उपयोग कर रहा है:

MLFQ एक्जीक्यूशन टाइमलाइन P1 P2 P3 P2 P1 P2 P1 (क्यू 2 - FCFS) 0 1 2 3 4 6 8 14 Q0 Q0 Q0 Q1 Q1 Q1 Q2

उपयोग के मामले

MLFQ निम्नलिखित परिदृश्यों में विशेष रूप से प्रभावी है:

  • इंटरैक्टिव एप्लिकेशन: वेब ब्राउज़र, टेक्स्ट एडिटर्स, और GUI एप्लिकेशन उपयोगकर्ता इंटरैक्शन के लिए त्वरित प्रतिक्रिया समय से लाभान्वित होते हैं

  • टाइम-शेयरिंग सिस्टम: मल्टी-यूजर सिस्टम जहां इंटरैक्टिव और बैच प्रोसेसेज सह-अस्तित्व में हैं

  • रियल-टाइम सिस्टम: सिस्टम जिन्हें महत्वपूर्ण और गैर-महत्वपूर्ण कार्यों के लिए विभिन्न प्राथमिकता स्तरों की आवश्यकता होती है

  • गेमिंग एप्लिकेशन: गेम्स को ऑडियो और नेटवर्किंग जैसे बैकग्राउंड कार्यों को प्रबंधित करते हुए रिस्पॉन्सिव इनपुट हैंडलिंग की आवश्यकता होती है

लाभ

  • बेहतर प्रतिक्रिया समय: छोटी प्रोसेसेज को हाई-प्रायोरिटी क्यूज में त्वरित ध्यान मिलता है

  • डायनामिक प्राथमिकता समायोजन: प्रोसेस व्यवहार पैटर्न के अनुकूल स्वचालित रूप से ढल जाता है

  • स्टारवेशन को रोकता है: एजिंग मैकेनिज्म यह सुनिश्चित करता है कि लंबे समय से प्रतीक्षा कर रही प्रोसेसेज को अंततः CPU समय मिले

  • अच्छा थ्रूपुट: इंटरैक्टिव और बैच प्रोसेसिंग आवश्यकताओं को प्रभावी ढंग से संतुलित करता है

  • लचीला कॉन्फिगरेशन: विशिष्ट वर्कलोड के लिए टाइम क्वांटम और क्यूज की संख्या को ट्यून किया जा सकता है

नुकसान

  • कार्यान्वयन जटिलता: विभिन्न नीतियों के साथ कई क्यूज का प्रबंधन सिस्टम जटिलता को बढ़ाता है

  • उच्च ओवरहेड

मल्टीलेवल फीडबैक क्यू (MLFQ): एडाप्टिव CPU शेड्यूलिंग एल्गोरिदम

  1. JavaScript Number() फंक्शन JavaScript Number() फंक्शन

    JavaScript Number() फंक्शन ऑब्जेक्ट वैल्यू को तर्क के रूप में पास करके उसके संबंधित न्यूमेरिक वैल्यू में बदल देता है।उदाहरण<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width,

  1. CSS के साथ ऑन-स्क्रॉल फिक्स्ड नेविगेशन बार कैसे बनाएं CSS के साथ ऑन-स्क्रॉल फिक्स्ड नेविगेशन बार कैसे बनाएं

    परिचय CSS position प्रॉपर्टी को निर्दिष्ट करके, हम CSS का उपयोग करके एक फिक्स्ड नेविगेशन बार बना सकते हैं जो स्क्रॉल पर फिक्स्ड हो जाता है। पोजिशन प्रॉपर्टी सिंटैक्स selector { position: static | relative | absolute | fixed | sticky; } उदाहरण: स्टिकी नेविगेशन बार = sticky) { nav.classLi

  1. JavaScript के साथ innerHTML सेट करें JavaScript के साथ innerHTML सेट करें

    innerHTML सेट करने का सही सिंटैक्स निम्नानुसार है - document.getElementById(yourIdName).innerHTML=yourValue; आइए अब देखें कि innerHTML कैसे सेट करें - उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8> <meta name=viewport content=width=device-widt