लिनक्स में किस शेड्यूलिंग एल्गोरिदम का उपयोग किया जाता है?


11

हाल ही में एक साक्षात्कार में मुझे लिनक्स ऑपरेटिंग सिस्टम द्वारा उपयोग किए जाने वाले शेड्यूलिंग एल्गोरिदम के बारे में पूछा गया था। एल्गोरिथ्म किसी भी क्यों इस्तेमाल किया जाता है?

इसके अलावा, क्या एल्गोरिथ्म वास्तविक समय ऑपरेटिंग सिस्टम में प्रयोग किया जाता है और क्यों?


प्रक्रिया या IO शेड्यूलिंग के लिए? या और भी कुछ?
मैक्सक्लेपजिग

जवाबों:


7

वर्तमान लिनक्स टास्क शेड्यूलर को कंप्लीटली फेयर शेड्यूलर (CFS) कहा जाता है। अधिक जानकारी के लिए आपको http://people.redhat.com/mingo/cfs-scheduler/sched-design-CFS.txt पर एक नज़र रखना चाहिए । डिजाइन काफी जटिल है और मेरे विचार में आरटीओएस के लिए उपयुक्त नहीं है।

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


2

मुझे पूरा यकीन नहीं है, चाहे आप कर्नेल के I / O शेड्यूलिंग के बारे में ले रहे हों। मामले में आप नहीं हैं: इस उत्तर पर ध्यान न दें।

विकिपीडिया बताता है कि कर्नेल 2.6.18 के बाद से सीएफजी (पूरी तरह से निष्पक्ष कतार) डिफ़ॉल्ट है।

मेरी openSUSE पर (कर्नेल 2.6.37 चल) मैं CFG, बीच स्विच कर सकते NOOP और समय सीमा


मैं उत्सुक हूं, हम एक अलग एल्गोरिथ्म में कैसे स्विच कर सकते हैं? क्या आप इस पर कुछ प्रकाश डाल सकते हैं? धन्यवाद
rsjethani

@rsjethani YaST -> सिस्टम -> कर्नेल सेटिंग्स -> 2 टैब (कर्नेल सेटिंग्स) -> ग्लोबल आईओ शेड्यूलर पर जाएं। (विकल्पों का नामकरण भिन्न हो सकता है क्योंकि मैंने एक जर्मन GUI से अनुवाद किया है)
Torbjörn

1

राउंड रॉबिन एल्गोरिथ्म आमतौर पर समय साझा करने के वातावरण में उपयोग किया जाता है।


0

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

यह प्रत्येक प्रक्रिया को वास्तविक समय प्रक्रिया या एक सामान्य (अन्य) प्रक्रिया के रूप में पहचानता है। वास्तविक समय के कार्यों को श्रेणी [0,99] में स्थिर प्राथमिकता दी जाती है, जहाँ कम संख्या उच्च प्राथमिकता को इंगित करती है।

अन्य सभी कार्यों की सीमा में गतिशील प्राथमिकताएं होती हैं [100,139], एक कार्य की अन्तरक्रियाशीलता के आधार पर जो उनके अच्छे मूल्यों के साथ-साथ या मान के आधार पर होता है 5. कार्य जो अधिक संवादात्मक होते हैं उनमें आमतौर पर सोने का समय अधिक होता है और इसलिए उनकी संभावना अधिक होती है −5 के करीब समायोजन है, क्योंकि अनुसूचक इंटरैक्टिव कार्यों का पक्षधर है। (किसी कार्य की अन्तरक्रियाशीलता यह निर्धारित करती है कि I / O का इंतज़ार करते हुए उसे कितनी देर नींद आ गई है।) किसी कार्य की अन्तरक्रियाशीलता यह निर्धारित करती है कि मान 5 को अच्छे मान से जोड़ा जाएगा या घटाया जाएगा। इस तरह के समायोजन का परिणाम इन कार्यों के लिए उच्च प्राथमिकता होगी। इसके विपरीत, छोटी नींद के समय वाले कार्य अक्सर अधिक सीपीयू-बाउंड होते हैं और इस प्रकार उनकी प्राथमिकताएं कम हो जाती हैं।

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

किसी कार्य की गतिशील प्राथमिकता पुनर्गणना की जाती है जब कार्य अपने समय की मात्रा को समाप्त कर देता है और उसे समाप्त हो चुके सरणी में ले जाना होता है। इस प्रकार, जब दो सरणियों का आदान-प्रदान किया जाता है, तो नए सक्रिय सरणी में सभी कार्यों को नई प्राथमिकताएं और इसी समय के स्लाइस सौंपे गए हैं। (नोट: यह अब्राहम सिलबर्सचैट, वगैरह के ऑपरेटिंग सिस्टम कॉन्सेप्ट्स (9 वें संस्करण) की पुस्तक का एक अंश है। विवरण के लिए कृपया इस पुस्तक के खंड 5.6.3 का संदर्भ लें)


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

0

यह आपके दूसरे प्रश्न का उत्तर है। रियल टाइम सिस्टम (RTS) दो प्रकार के होते हैं, हार्ड और सॉफ्ट। हार्ड आरटीएस के लिए सीपीयू शेड्यूलिंग एल्गोरिदम प्राथमिकता आधारित प्रीमेप्टिव एल्गोरिथ्म है और सॉफ्ट आरटीएस के लिए यह गैर-प्रीमेप्टिव प्राथमिकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.