दा इंडियन वायर » टैकनोलजी » ऑपरेटिंग सिस्टम शेड्यूलिंग अल्गोरिथम: FCFS, SJN, राउंड रोबिन इत्यादि की पूरी जानकारी
टैकनोलजी

ऑपरेटिंग सिस्टम शेड्यूलिंग अल्गोरिथम: FCFS, SJN, राउंड रोबिन इत्यादि की पूरी जानकारी

Scheduling algorithm in os in hindi

शेड्यूलिंग अल्गोरिथम (scheduling algorithms in os in hindi)

एक प्रोसेस शेड्यूलर ऑपरेटिंग सिस्टम में विभिन्न प्रोसेस को शेड्यूल करता है कि कब उन्हें CPU को असाइन किया जाएगा। और ये कार्य किसी शेड्यूलिंग अल्गोरिथम पर आधारित होता है।

कुल छः सबसे लोकप्रिय प्रोसेस शेड्यूलिंग अल्गोरिथम हैं जिनकी हम यहाँ चर्चा करने जा रहे हैं:

  • फर्स्ट कम फर्स्ट सर्व (FCFS) Scheduling
  • शोर्टेस्ट जॉब नेक्स्ट (SJN) Scheduling
  • प्रायोरिटी शेड्यूलिंग
  • शोर्टेस्ट रेमैनींग टाइम
  • राउंड रोबिन शेड्यूलिंग
  • मल्टीपल लेवल क्यूज शेड्यूलिंग

ये अल्गोरिथम या तो preemptive होते हैं या फिर नॉन-preemptive. नॉन-preemptive अल्गोरिथम को ऐसे डिजाईन किया जाता है कि एक बार अगर प्रोसेस रनिंग स्टेट में चला जाता है इसे तब तक प्रीम्प्ट नहीं किया जा सकता जब तक ये दिया गया समय पूरा न कर ले।

वहीं preemptive शेड्यूलिंग प्रोरिटी पर आधारित होता है जहां शेड्यूलर किसी लो प्रिप्रिटी के अल्गोरिथम को हाई प्रायोरिटी वाले के लिए कभी भी हटा सकता है।

फर्स्ट कम फर्स्ट सर्व (fcfs scheduling algorithm in os in hindi)

  • इसमें जॉब्स को पहले आने और पहले पाने के आधार पर शेड्यूल किया जाता है।
  • ये एक नॉन-preemptive, pre-emptive शेड्यूलिंग अल्गोरिथम है।
  • इसे समझना और implement करना आसान है क्योंकि ये सबसे सिंपल अल्गोरिथ में से एक है।
  • इसका इम्प्लीमेंटेशन FIFO क्यू पर आधारित होता है।
  • इसमें औसत वेट समय ज्यादा होता है, इसीलिए ये परफॉरमेंस के मामले में पीछे छूट जाता है।

First Come First Serve Scheduling Algorithm

इसमें हर प्रोसेस के लिए वेट टाइम निम्नलिखित है

प्रोसेसवेट टाइम: सर्विस टाइम -अर्रिवल टाइम
P00 – 0 = 0
P15 – 1 = 4
P28 – 2 = 6
P316 – 3 = 13

औसत वेट टाइम: (0+4+6+13) / 4 = 5.75

शोर्टेस्ट जॉब नेक्स्ट (sjn scheduling algorithms in os in hindi)

  • इसे शोर्टेस्ट जॉब फर्स्ट या SJF के नाम से भी जाना जाता है।
  • ये एक नॉन-preemptive, pre-emptive शेड्यूलिंग अल्गोरिथम है।
  • वेट टाइम को कमतर करने के लिए ये सबसे सही एप्रोच है।
  • इसे बैच में इमप्लेमेंट करना आसान है जहां CPU टाइम की जानकारी पहले से ही रहती है।
  • इसे इंटरैक्टिव कंप्यूटर में इमप्लेमेंट करना मुश्किल है क्योंकि वहां CPU टाइम की जानकारी पहले से नहीं रहती।
  • इसमें प्रोसेसर को पहले से ही पता होना चाहिए कि कोई प्रोसेस के एक्सीक्यूट होने में कितना समय लगेगा।

Shortest Job First Scheduling Algorithm

सभी प्रोसेस के लिए वेट टाइम निम्न है

प्रोसेसवेट टाइम: सर्विस टाइम -अर्रिवल टाइम
P03 – 0 = 3
P10 – 0 = 0
P216 – 2 = 14
P38 – 3 = 5

औसत वेट टाइम: (3+0+14+5) / 4 = 5.50

प्रायोरिटी बेस्ड शेड्यूलिंग (PBS scheduling algorithms in os in hindi)

  • प्रायोरिटी बेस्ड शेड्यूलिंग एक नॉन-preemptive अल्गोरिथम है और बैच सिस्टम में सबसे लोकप्रिय अल्गोरिथम में से एक है।
  • हर प्रोसेस को एक प्रायोरिटी असाइन की जाती है। सबसे ज्यादा प्रायोरिटी वाला प्रोसेस पहले एक्सीक्यूट होगा और ऐसा ही चलता रहता है।
  • सब दो प्रोसेस की प्रायोरिटी समान हो जाये तो उनमे फर्स्ट कम फर्स्ट सर्व यानी FCFS शेड्यूलिंग अल्गोरिथम के आधार पर निर्णय लिया जाता है।
  • प्रायोरिटी को जरूरी मेमोरी, समय या कोई अन्य जरूरत के हिसाब से तय किया जा सकता है।

Priority Scheduling Algorithm

हर प्रोसेस के लिए निम्न वेट टाइम होगा

प्रोसेसवेट टाइम: सर्विस टाइम -अर्रिवल टाइम
P09 – 0 = 9
P16 – 1 = 5
P214 – 2 = 12
P30 – 0 = 0

औसत वेटिंग टाइम: (9+5+12+0) / 4 = 6.5

शोर्टेस्ट रेमैनिंग टाइम (SRT scheduling algorithm in os in hindi)

शोर्टेस्ट रेमैनिंग टाइम शेड्यूलिंग अल्गोरिथम और कुछ नहीं बल्कि शोर्टेस्ट जॉब नेक्स्ट यानी SJN शेड्यूलिंग अल्गोरिथम का ही preemptive वर्जन है।

इसमें जो जॉब पूरा होने के बिलकुल नजदीक है उसे ही CPU असाइन किया जाता है लेकिन और कोई नया ऐसा जॉब रेडी क्यू में आ जाए जिसे पूरा होने के लिए इस से भी कम समय चाहिए तो इसके लिए पुराने वाले को प्रीम्प्ट कर दिया जाएगा।

इसे इंटरैक्टिव सिस्टम्स में इमप्लेमेंट करना लगभग असंभव है क्योंकि वहां हमे CPU टाइम पहले से पता नहीं होता। इसे अक्सर बैच वाले सिस्टम में प्रयोग किया जाता है जहां छोटे जॉब को पहले प्राथमिकता दी जाती है।

राउंड रोबिन (round robin scheduling algorithms in os in hindi)

राउंड रोबिन एक preemptive प्रोसेस शेड्यूलिंग अल्गोरिथम है। इस अल्गोरिथम में हर प्रोसेस को एक्सीक्यूट होने के लिए एक निश्चित समय दिया जाता है जिसे क्वांटम कहते हैं।

एक बार जब किसी प्रोसेस को दिए गए समयावधि के लिए एक्सीक्यूट कर दिया जाता है तो उसे हटाकर दूसरे बांकी सारे प्रोसेस को दिए गया समय के लिए एक्सीक्यूट किया जाता है।

प्रीम्प्ट किये हुए प्रोसेस की स्थिति को याद रखने के लिए कॉन्टेक्स्ट स्विचिंग का प्रयोग कर उसे सेव कर दिया जाता है।Round Robin Scheduling Algorithm

हर प्रोसेस के लिए निम्न वेट टाइम होगा
प्रोसेसवेट टाइम: सर्विस टाइम -अर्रिवल टाइम
P0(0 – 0) + (12 – 3) = 9
P1(3 – 1) = 2
P2(6 – 2) + (14 – 9) + (20 – 17) = 12
P3(9 – 3) + (17 – 12) = 11

औसत वेट टाइम: (9+2+12+11) / 4 = 8.5

मल्टीपल लेवल क्यूज शेड्यूलिंग (MLQS algorithm in os in hindi)

मल्टीपल लेवल क्यूज एक स्वतंत्र शेड्यूलिंग अल्गोरिथम नहीं है। ये बांकी के पहले से मौजूद अल्गोरिथम अल्गोरिथम का प्रयोग करते हैं जिसके द्वारा ये ऐसे जॉब को चुनते हैं जिनके characteristics समान हो और फिर उन्हें शेड्यूल करते हैं।

  • समान characteristics वाले प्रोसेस को एक क्यू में रखा जाता है और ऐसे-ऐसे एक से ज्यादा क्यू होते हैं जिन्हें मेन्टेन किया जाता है।
  • प्रत्येक क्यू का अपना अलग शेड्यूलिंग अल्गोरिथम हो सकता है।
  • हर क्यू को प्रायोरिटी असाइन की जाती है।

उदाहरण के तौर पर, CPU bound जॉब्स को एक क्यू में डाल कर शेड्यूल किया जा सकता है और सभी I/O bound जॉब्स को किसी और क्यू में डाला जा सकता है।

इसके बाद प्रोसेस शेड्यूलर हर क्यू से अल्टरनेटिव रूप से जॉब्स को सेलेक्ट करता है और उस क्यू को जो अल्गोरिथम दिया गया है उस हिसाब से इसे CPU को असाइन कर देता है।

इस लेख से सम्बंधित यदि आपका कोई भी सवाल या सुझाव है, तो आप उसे नीचे कमेंट में लिख सकते हैं।

About the author

अनुपम कुमार सिंह

बीआईटी मेसरा, रांची से कंप्यूटर साइंस और टेक्लॉनजी में स्नातक। गाँधी कि कर्मभूमि चम्पारण से हूँ। समसामयिकी पर कड़ी नजर और इतिहास से ख़ास लगाव। भारत के राजनितिक, सांस्कृतिक और भौगोलिक इतिहास में दिलचस्पी ।

3 Comments

Click here to post a comment

  • शोर्टेस्ट रेमैनिंग टाइम के स्थान पर क्या शौर्टेसट टाइम तो डेलिवरी नहीं होना चाहिए.

फेसबुक पर दा इंडियन वायर से जुड़िये!

Want to work with us? Looking to share some feedback or suggestion? Have a business opportunity to discuss?

You can reach out to us at [email protected]