अच्छा काम कैसे होता है?


20

शेड्यूल_सेटसेट्यूलर कहता है:

सभी समय-निर्धारण निवारक है: यदि उच्च स्थैतिक प्राथमिकता वाली कोई प्रक्रिया चलाने के लिए तैयार हो जाती है, तो वर्तमान में चल रही प्रक्रिया को पूर्व-निर्धारित किया जाएगा और इसके स्थैतिक प्राथमिकता स्तर के लिए प्रतीक्षा सूची में वापस आ जाएगी।

जबकि सेटपैरिटी कहती है

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

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


इंटरनेट पर सभी जानकारी का उपयोग कैसे करना है nice, और प्रक्रिया की प्राथमिकता को कैसे बदलना है। कोई भी लिंक नहीं बताता है कि विभिन्न प्राथमिकता वाले कार्यों के साथ वास्तव में कैसे प्रक्रिया है। मुझे सोर्स कोड भी नहीं मिला।

जवाबों:


24

प्रोसेसर समय का अनुपात किसी विशेष प्रक्रिया को प्राप्त करता है, यह इसके और अन्य चलने योग्य प्रक्रियाओं के बीच निकटता में सापेक्ष अंतर से निर्धारित होता है।

लिनक्स कंप्लीटली फेयर शेड्यूलर (सीएफएस) नेक्स्ट के आधार पर एक वजन की गणना करता है । वजन लगभग बराबर है 1024 / (1.25 ^ nice_value)। जैसे ही अच्छा मूल्य घटता है वजन तेजी से बढ़ता है। प्रक्रिया के लिए आवंटित की गई समय-सीमा सभी चलने योग्य प्रक्रियाओं के कुल वजन से विभाजित प्रक्रिया के वजन के लिए आनुपातिक है। सीएफएस के कार्यान्वयन में है kernel/sched/fair.c

शेड्यूलिंग अवधि के लिए सीएफएस में एक लक्ष्य विलंबता होती है। छोटे लक्ष्य विलंबता बेहतर अन्तरक्रियाशीलता प्राप्त करते हैं, लेकिन जैसे-जैसे लक्ष्य विलंबता कम होती जाती है, स्विचिंग ओवरहेड बढ़ता जाता है, इस प्रकार समग्र विवाद कम होता जाता है।

उदाहरण के लिए 20 मिलीसेकंड की एक लक्ष्य विलंबता और दो श्रेष्ठ प्रक्रियाओं की समानता को देखते हुए, फिर दोनों प्रक्रियाएं अन्य प्रक्रिया के पक्ष में पूर्व-खाली होने से पहले प्रत्येक 10 मिलीसेकंड के लिए चलेंगी। यदि समरूपता की 10 प्रक्रियाएं हैं, तो प्रत्येक 2 मिलीसेकंड के लिए चलता है।

अब दो प्रक्रियाओं पर विचार करें, जिनमें से एक 0 की शून्यता के साथ है (डिफ़ॉल्ट), दूसरा 5 की शून्यता के साथ। इसी वजन के बीच आनुपातिक अंतर लगभग 1/3 है, जिसका अर्थ है कि उच्च प्राथमिकता प्रक्रिया लगभग 15 मिलीसेकंड का एक समय प्राप्त करता है जबकि निचली प्राथमिकता प्रक्रिया में 5 मिलीसेकंड का समय प्राप्त होता है।

अंत में क्रमशः 5 और 10 के शून्य मान के साथ दो प्रक्रियाओं पर विचार करें। जबकि इस मामले में पूर्ण निरपेक्षता बड़ी है, निकनेस मूल्यों के बीच सापेक्ष अंतर पिछले उदाहरण के समान है, एक समान समयरेखा विभाजन का उत्पादन करता है।


बस जिस चीज की मुझे तलाश थी। धन्यवाद! बाद में मुझे यह लेख मिला जो विवरण में सब कुछ बताता है, लेकिन ऐसा नहीं है जो आपने अभी लिखा है।
B45овиЈ

वहाँ कुछ मुझे समझ में नहीं आता है .. क्या vruntime की भूमिका है?
गिरावट

@Surferonthefall vruntime सीएफएस आंतरिक तंत्र है जो सीपीयू के समय की बहुत सारी प्रक्रियाओं को ट्रैक करता है और आवंटित किया जाता है। यह सवाल यूजर्स को दिखने वाली अच्छी वैल्यू के बारे में है। यदि आपके पास सीएफएस इंटर्नल के बारे में एक प्रश्न है, और कहीं और उत्तर नहीं मिल रहा है , तो एक नया प्रश्न पूछें
थॉमस निमन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.