राउंड रॉबिन (RR) एक प्रीमेप्टिव CPU शेड्यूलिंग एल्गोरिदम है जहां प्रत्येक प्रक्रिया को एक निश्चित समय स्लाइस आवंटित किया जाता जिसे क्वांटम कहा जाता है। शून्य आगमन समय वाले मानक राउंड रॉबिन के विपरीत, यह संस्करण उन प्रक्रियाओं को संभालता है जो अलग-अलग समय पर आती हैं, जिससे शेड्यूलिंग अधिक जटिल हो जाती है क्योंकि रेडी क्यू डायनामिक रूप से बदलती है।
प्रीमेप्टिव शेड्यूलिंग में, एक चल रही प्रक्रिया को बाधित किया जा सकता है और वापस रेडी क्यू में ले जाया जा सकता है। राउंड रॉबिन प्रत्येक प्रक्रिया को CPU समय का समान हिस्सा देकर निष्पक्षता सुनिश्चित करता है, इंटरएक्टिव सिस्टम के लिए अच्छी प्रतिक्रिया समय बनाए रखते हुए स्टारवेशन को रोकता है।
अलग-अलग आगमन समय के साथ राउंड रॉबिन कैसे काम करता है
जब प्रक्रियाओं के अलग-अलग आगमन समय होते हैं, तो एल्गोरिदम इन चरणों का पालन करता है:
प्रक्रियाएं अपने आगमन समय के आधार पर रेडी क्यू में प्रवेश करती हैं
CPU पहली उपलब्ध प्रक्रिया को क्वांटम अवधि के लिए सेवा देता है
यदि प्रक्रिया क्वांटम के भीतर पूरी हो जाती है, तो यह समाप्त हो जाती है
यदि पूरी नहीं होती, तो यह रेडी क्यू के अंत में चली जाती है
नई आगमन रेडी क्यू में शामिल होती हैं और अपनी बारी का इंतजार करती हैं
कॉन्टेक्स्ट स्विचिंग प्रीमेप्टेड प्रक्रियाओं की स्थिति को बचाता है
मुख्य विशेषताएं
स्टारवेशन रोकता है: हर प्रक्रिया को अंततः CPU समय मिलता है
निष्पक्ष शेड्यूलिंग: सभी प्रक्रियाओं के लिए समान समय क्वांटम
अच्छी प्रतिक्रिया समय: इंटरएक्टिव और रियल-टाइम सिस्टम के लिए उपयुक्त
कॉन्टेक्स्ट स्विचिंग ओवरहेड: छोटा क्वांटम स्विचिंग लागत बढ़ाता है
उदाहरण 1 क्वांटम समय = 2
तीन प्रक्रियाओं पर विचार करें जिनके अलग-अलग आगमन और बर्स्ट समय हैं:
| Process | Arrival Time | Burst Time |
|---|---|---|
| P1 | 0 | 4 |
| P2 | 1 | 3 |
| P3 | 2 | 7 |
गैंट चार्ट ? राउंड रॉबिन (क्वांटम = 2) P1 P2 P3 P1 P2 P3 0 2 4 6 8 9 14
चरण-दर-चरण निष्पादन
| Time | Process | Ready Queue | Action |
|---|---|---|---|
| 0-2 | P1 | P1 | P1 2 यूनिट के लिए चलता है, P2 t=1 पर आता है |
| 2-4 | P2 | P2, P1 | P2 2 यूनिट के लिए चलता है, P3 t=2 पर आता है |
| 4-6 | P3 | P3, P1 | P3 2 यूनिट के लिए चलता है |
| 6-8 | P1 | P1, P2, P3 | P1 शेष 2 यूनिट पूरा करता है |
| 8-9 | P2 | P2, P3 | P2 शेष 1 यूनिट पूरा करता है |
| 9-14 | P3 | P3 | P3 शेष 5 यूनिट पूरा करता है |
औसत समय की गणना
| Process | Arrival | Burst | Completion | Turnaround | Waiting |
|---|---|---|---|---|---|
| P1 | 0 | 4 | 8 | 8 | 4 |
| P2 | 1 | 3 | 9 | 8 | 5 |
| P3 | 2 | 7 | 14 | 12 | 5 |
औसत टर्नअराउंड समय = (8 + 8 + 12) / 3 = 9.33 यूनिट
औसत वेटिंग समय = (4 + 5 + 5) / 3 = 4.67 यूनिट
उदाहरण 2 क्वांटम समय = 4
एक बड़े क्वांटम आकार के साथ:
| Process | Arrival Time | Burst Time |
|---|---|---|
| P1 | 2 | 8 |
| P2 | 0 | 7 |
| P3 | 1 | 9 |
गैंट चार्ट ? राउंड रॉबिन (क्वांटम = 4) P2 P3 P1 P2 P3 P1 0 4 8 12 15 20 24
| Process | Arrival | Burst | Completion | Turnaround | Waiting |
|---|---|---|---|---|---|
| P1 | 2 | 8 | 24 | 22 | 14 |
| P2 | 0 | 7 | 15 | 15 | 8 |
| P3 | 1 | 9 | 20 | 19 | 10 |
औसत टर्नअराउंड समय = (22 + 15 + 19) / 3 = 18.67 यूनिट
औसत वेटिंग समय = (14 + 8 + 10) / 3 = 10.67 यूनिट
निष्कर्ष
अलग-अलग आगमन समय के साथ राउंड रॉबिन शेड्यूलिंग डायनामिक प्रक्रिया आगमन को संभालते हुए निष्पक्ष CPU आवंटन प्रदान करता है। क्वांटम आकार प्रदर्शन को महत्वपूर्ण रूप से प्रभावित करता है — छोटे क्वांटम प्रतिक्रिया समय में सुधार करते हैं लेकिन कॉन्टेक्स्ट स्विचिंग ओवरहेड बढ़ाते हैं, जबकि बड़े क्वांटम निष्पक्षता को कम कर सकते हैं लेकिन थ्रूपुट में सुधार करते हैं।