प्राथमिकता निर्धारण एल्गोरिथ्म: पूर्वनिर्धारित, गैर-पूर्वनिर्धारित उदाहरण
प्राथमिकता निर्धारण क्या है?
प्राथमिकता निर्धारण यह प्रक्रियाओं को शेड्यूल करने की एक विधि है जो प्राथमिकता पर आधारित है। इस एल्गोरिथ्म में, शेड्यूलर प्राथमिकता के अनुसार काम करने के लिए कार्यों का चयन करता है।
उच्च प्राथमिकता वाली प्रक्रियाओं को पहले किया जाना चाहिए, जबकि समान प्राथमिकताओं वाले कार्य राउंड-रॉबिन या एफसीएफएस के आधार पर किए जाते हैं। प्राथमिकता स्मृति आवश्यकताओं, समय की आवश्यकताओं आदि पर निर्भर करती है।
प्राथमिकता निर्धारण के प्रकार
प्राथमिकता निर्धारण दो मुख्य प्रकारों में विभाजित है:
प्रीमेप्टिव शेड्यूलिंग
प्रीमेप्टिव शेड्यूलिंग में, कार्यों को अधिकतर उनकी प्राथमिकताओं के साथ असाइन किया जाता है। कभी-कभी किसी कम प्राथमिकता वाले कार्य से पहले उच्च प्राथमिकता वाले कार्य को चलाना महत्वपूर्ण होता है, भले ही कम प्राथमिकता वाला कार्य अभी भी चल रहा हो। कम प्राथमिकता वाला कार्य कुछ समय के लिए रुका रहता है और उच्च प्राथमिकता वाले कार्य के निष्पादन के समाप्त होने पर फिर से शुरू होता है।
गैर-पूर्वानुमानित शेड्यूलिंग
इस प्रकार की शेड्यूलिंग विधि में, CPU को एक विशिष्ट प्रक्रिया को आवंटित किया गया है। जो प्रक्रिया CPU को व्यस्त रखती है, वह संदर्भ स्विच करके या समाप्त करके CPU को रिलीज़ करेगी। यह एकमात्र विधि है जिसका उपयोग विभिन्न हार्डवेयर प्लेटफ़ॉर्म के लिए किया जा सकता है। ऐसा इसलिए है क्योंकि इसमें प्रीमेप्टिव शेड्यूलिंग जैसे विशेष हार्डवेयर (उदाहरण के लिए, टाइमर) की आवश्यकता नहीं होती है।
प्राथमिकता निर्धारण की विशेषताएँ
- एक सीपीयू एल्गोरिथ्म जो प्राथमिकता के आधार पर प्रक्रियाओं को शेड्यूल करता है।
- इसका प्रयोग Operaबैच प्रक्रियाओं के निष्पादन हेतु प्रणालियाँ।
- यदि समान प्राथमिकता वाली दो नौकरियां तैयार हैं, तो यह एक पर काम करता है पहले आओ पहले पाओ आधार.
- प्राथमिकता निर्धारण में, प्रत्येक प्रक्रिया को एक संख्या सौंपी जाती है जो उसके प्राथमिकता स्तर को इंगित करती है।
- संख्या जितनी कम होगी, प्राथमिकता उतनी ही अधिक होगी।
- इस प्रकार के शेड्यूलिंग एल्गोरिथम में, यदि कोई नई प्रक्रिया आती है, जिसकी प्राथमिकता वर्तमान में चल रही प्रक्रिया से अधिक है, तो वर्तमान में चल रही प्रक्रिया को रोक दिया जाता है।
प्राथमिकता निर्धारण का उदाहरण
निम्नलिखित पाँच प्रक्रियाओं P1 से P5 पर विचार करें। प्रत्येक प्रक्रिया की अपनी अनूठी प्राथमिकता, बर्स्ट समय और आगमन समय होता है।
प्रक्रिया | प्राथमिकता | बर्स्ट टाइम | आने का समय |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 3 | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
चरण 0) समय = 0 पर, प्रक्रिया P1 और P2 आते हैं। P1 की प्राथमिकता P2 से अधिक है। निष्पादन प्रक्रिया P1 से शुरू होता है, जिसका बर्स्ट समय 4 है।
चरण 1) समय=1 पर, कोई नई प्रक्रिया नहीं आती। निष्पादन P1 के साथ जारी रहता है।
चरण 2) समय 2 पर, कोई नई प्रक्रिया नहीं आती है, इसलिए आप P1 के साथ जारी रख सकते हैं। P2 प्रतीक्षा कतार में है।
चरण 3) समय 3 पर, कोई नई प्रक्रिया नहीं आती है इसलिए आप P1 के साथ जारी रख सकते हैं। P2 प्रक्रिया अभी भी प्रतीक्षा कतार में है।
चरण 4) समय 4 पर, P1 ने अपना निष्पादन समाप्त कर लिया है। P2 निष्पादन शुरू करता है।
चरण 5) समय = 5 पर, कोई नई प्रक्रिया नहीं आती है, इसलिए हम P2 के साथ जारी रखते हैं।
चरण 6) समय = 6 पर, P3 आता है। P3 उच्च प्राथमिकता (1) पर है जबकि P2 की प्राथमिकता (2) है। P2 को पहले ही रोक दिया जाता है, और P3 अपना निष्पादन शुरू कर देता है।
प्रक्रिया | प्राथमिकता | बर्स्ट टाइम | आने का समय |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 में से 3 लंबित | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
चरण 7) पर समय 7, कोई नई प्रक्रिया नहीं आती है, इसलिए हम P3 के साथ जारी रखते हैं। P2 प्रतीक्षा कतार में है।
चरण 8) समय = 8 पर, कोई नई प्रक्रिया नहीं आती है, इसलिए हम P3 के साथ जारी रख सकते हैं।
चरण 9) समय = 9 पर, कोई नई प्रक्रिया नहीं आती है इसलिए हम P3 के साथ जारी रख सकते हैं।
चरण 10) समय अंतराल 10 पर कोई नई प्रक्रिया नहीं आती है, इसलिए हम P3 के साथ जारी रखते हैं
चरण 11) समय=11 पर, P4 प्राथमिकता 4 के साथ आता है। P3 की प्राथमिकता अधिक है, इसलिए इसका निष्पादन जारी रहता है।
प्रक्रिया | प्राथमिकता | बर्स्ट टाइम | आने का समय |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 में से 3 लंबित | 0 |
P3 | 1 | 2 में से 7 लंबित | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
चरण 12) समय=12 पर, P5 आता है। P3 की प्राथमिकता अधिक है, इसलिए यह निष्पादन जारी रखता है।
चरण 13) समय=13 पर, P3 निष्पादन पूरा करता है। हमारे पास है P2,P4,P5 तैयार कतार में हैं। P2 और P5 की प्राथमिकता समान है। P2 का आगमन समय P5 से पहले है। इसलिए P2 निष्पादन शुरू करता है।
प्रक्रिया | प्राथमिकता | बर्स्ट टाइम | आने का समय |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 में से 3 लंबित | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
चरण 14) समय =14 पर, P2 प्रक्रिया ने अपना निष्पादन समाप्त कर लिया है। P4 और P5 प्रतीक्षा अवस्था में हैं। P5 की प्राथमिकता सबसे अधिक है और वह निष्पादन शुरू करता है।
चरण 15) समय =15 पर, P5 निष्पादन जारी रखता है.
चरण 16) समय = 16 पर, P5 का निष्पादन समाप्त हो गया है। P4 एकमात्र प्रक्रिया बची है। इसका निष्पादन शुरू होता है।
चरण 17) समय =20 पर, P5 ने निष्पादन पूरा कर लिया है और कोई प्रक्रिया शेष नहीं है।
चरण 18) आइये उपरोक्त उदाहरण के लिए औसत प्रतीक्षा समय की गणना करें।
प्रतीक्षा समय = प्रारंभ समय – आगमन समय + अगले विस्फोट के लिए प्रतीक्षा समय
P1 = o - o = o P2 =4 - o + 7 =11 P3= 6-6=0 P4= 16-11=5 Average Waiting time = (0+11+0+5+2)/5 = 18/5= 3.6
प्राथमिकता निर्धारण के लाभ
प्राथमिकता निर्धारण पद्धति का उपयोग करने के लाभ/लाभ इस प्रकार हैं:
- उपयोग में आसान शेड्यूलिंग विधि
- प्रक्रियाओं को प्राथमिकता के आधार पर निष्पादित किया जाता है, इसलिए उच्च प्राथमिकता को लंबे समय तक इंतजार करने की आवश्यकता नहीं होती है, जिससे समय की बचत होती है
- यह विधि एक अच्छा तंत्र प्रदान करती है जहां प्रत्येक प्रक्रिया का सापेक्ष महत्व सटीक रूप से परिभाषित किया जा सकता है।
- अस्थिर समय और संसाधन आवश्यकताओं वाले अनुप्रयोगों के लिए उपयुक्त।
प्राथमिकता निर्धारण के नुकसान
प्राथमिकता निर्धारण के नुकसान/कमियां यहां दी गई हैं
- यदि सिस्टम अंततः क्रैश हो जाता है, तो सभी निम्न प्राथमिकता वाली प्रक्रियाएं नष्ट हो जाती हैं।
- यदि उच्च प्राथमिकता वाली प्रक्रियाएं बहुत अधिक CPU समय लेती हैं, तो निम्न प्राथमिकता वाली प्रक्रियाएं रुक सकती हैं तथा अनिश्चित समय के लिए स्थगित हो सकती हैं।
- यह शेड्यूलिंग एल्गोरिदम कुछ निम्न प्राथमिकता वाली प्रक्रियाओं को अनिश्चित काल तक प्रतीक्षारत छोड़ सकता है।
- एक प्रक्रिया तब अवरुद्ध हो जाएगी जब वह चलने के लिए तैयार होगी लेकिन उसे CPU के लिए इंतजार करना होगा क्योंकि वर्तमान में कोई अन्य प्रक्रिया चल रही है।
- यदि कोई नई उच्च प्राथमिकता वाली प्रक्रिया तैयार कतार में आती रहती है, तो प्रतीक्षा स्थिति में मौजूद प्रक्रिया को लंबे समय तक प्रतीक्षा करनी पड़ सकती है।
सारांश
- प्राथमिकता निर्धारण प्रक्रियाओं को निर्धारित करने की एक विधि है जो प्राथमिकता पर आधारित होती है। इस एल्गोरिथ्म में, शेड्यूलर प्राथमिकता के अनुसार काम करने के लिए कार्यों का चयन करता है।
- प्राथमिकता पूर्वनिर्धारित निर्धारण में, कार्यों को अधिकतर उनकी प्राथमिकताओं के साथ सौंपा जाता है।
- प्राथमिकता गैर-प्रीमेप्टिव शेड्यूलिंग विधि में, CPU को एक विशिष्ट प्रक्रिया को आवंटित किया गया है।
- प्रक्रियाओं को प्राथमिकता के आधार पर निष्पादित किया जाता है, इसलिए उच्च प्राथमिकता को लंबे समय तक इंतजार करने की आवश्यकता नहीं होती है, जिससे समय की बचत होती है
- यदि उच्च प्राथमिकता वाली प्रक्रियाएं बहुत अधिक CPU समय लेती हैं, तो निम्न प्राथमिकता वाली प्रक्रियाएं रुक सकती हैं तथा अनिश्चित समय के लिए स्थगित हो सकती हैं।