(-) का एक अच्छा मूल्य क्या है?


19

मैन पेज के अनुसार, और विकिपीडिया; nice-20 से 20 तक होता है।

फिर भी जब मैं निम्नलिखित कमांड चलाता हूं, तो मुझे लगता है कि कुछ प्रक्रियाओं का एक गैर संख्यात्मक मान है जैसे (-)। बाईं ओर के छठे स्तंभ को 'NI' शीर्षक से देखें।

(-) की निशानी क्या बताती है?

 ps axl 
 F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0     1     0  20   0  19356  1548 poll_s Ss   ?          0:00 /sbin/init
1     0     2     0  20   0      0     0 kthrea S    ?          0:00 [kthreadd]
1     0     3     2 -100  -      0     0 migrat S    ?          0:03 [migration/0]
1     0     4     2  20   0      0     0 ksofti S    ?          0:51 [ksoftirqd/0]
1     0     5     2 -100  -      0     0 cpu_st S    ?          0:00 [migration/0]
5     0     6     2 -100  -      0     0 watchd S    ?          0:09 [watchdog/0]
1     0     7     2 -100  -      0     0 migrat S    ?          0:08 [migration/1]
1     0     8     2 -100  -      0     0 cpu_st S    ?          0:00 [migration/1]
1     0     9     2  20   0      0     0 ksofti S    ?          1:03 [ksoftirqd/1]
5     0    10     2 -100  -      0     0 watchd S    ?          0:09 [watchdog/1]
1     0    11     2 -100  -      0     0 migrat S    ?          0:05 [migration/2]

मैंने 3 सर्वर चल रहे हैं: Ubuntu 12.04 और CentOs 6.5 और Mac OsX 10.9। केवल उबंटू और सेंटो मशीनों में गैर-डिजिट का अच्छा मूल्य है।


FYI करें: वे सभी प्रक्रियाएँ जिनके नाम [brackets]वास्तव में हैं kthread(कर्नेल थ्रेड्स)।
जोनाथन रेनहार्ट

जवाबों:


18

(-) की निशानी क्या बताती है?

ध्यान दें, जिनके पास -100 का PRI स्कोर है; यह इंगित करता है कि यह प्रक्रिया एक रीयलटाइम प्रक्रिया के रूप में निर्धारित है। रीयलटाइम प्रक्रियाएं अच्छे अंकों का उपयोग नहीं करती हैं और हमेशा सामान्य लोगों की तुलना में उच्च प्राथमिकता होती हैं, लेकिन फिर भी एक दूसरे के संबंध में भिन्न होती हैं।

आप chrtकमांड (जैसे chrt -p 3) के साथ प्रति प्रक्रिया विवरण देख सकते हैं । आपके -100 में से एक व्यक्ति संभवतः 99 की "वर्तमान समयबद्धता प्राथमिकता" की रिपोर्ट करेगा - इसके विपरीत nice, यहां उच्च मूल्य उच्च प्राथमिकता है, जो संभवत: जहां से शीर्ष ने -100नंबर बनाया है। गैर-रियलटाइम प्रक्रियाएं हमेशा chrtअच्छे मूल्य की परवाह किए बिना 0 की "वर्तमान समयबद्धता प्राथमिकता" दिखाएंगी , और लिनक्स के तहत "वर्तमान समयबद्धन नीति" की SCHED_OTHER

केवल उबंटू और सेंटो मशीनों में गैर-डिजिट का अच्छा मूल्य है।

के कुछ संस्करणों topके साथ वास्तविक समय प्रक्रियाओं रिपोर्ट करने के लिए लग रहे हैं rtके तहत पंचायती राज और उसके बाद 0के तहत एनआई


अद्भुत जवाब। मुझे पता था कि इसके साथ कुछ करना है -100लेकिन यह पता नहीं लगा सकी :)
रमेश

6

@ गोल्डिलॉक के जवाब ने मुझे सही रास्ते में अनुसंधान करने के लिए प्रेरित किया। यह मेरा शोध विवरण है।

प्रक्रियाओं के लिए उपलब्ध शेड्यूलिंग एल्गोरिदम

लिनक्स 3 शेड्यूलिंग नीतियों का समर्थन करता है। SCHED_FIFO, SCHED_RRऔर SCHED_OTHERSCHED_OTHERअधिकांश प्रक्रियाओं द्वारा उपयोग की जाने वाली डिफ़ॉल्ट सार्वभौमिक समय-साझाकरण शेड्यूलर नीति है; SCHED_FIFOऔर SCHED_RRविशेष समय-महत्वपूर्ण अनुप्रयोगों के लिए अभिप्रेत हैं, जिन्हें निष्पादन के लिए रन करने योग्य प्रक्रियाओं का चयन करने के तरीके पर सटीक नियंत्रण की आवश्यकता होती है।

प्राथमिकताएँ उपलब्ध हैं

चलाने के लिए एक प्रक्रिया का चयन करने के लिए, लिनक्स अनुसूचक को प्रत्येक प्रक्रिया की प्राथमिकता पर विचार करना चाहिए। दरअसल, दो तरह की प्राथमिकता होती है।

एक स्थिर प्राथमिकता मूल्य प्रत्येक प्रक्रिया को सौंपा गया है और शेड्यूलिंग इस स्थिर प्राथमिकता पर निर्भर करता है। SCHED_OTHERस्थिर प्राथमिकता के साथ निर्धारित प्रक्रियाएँ 0; के तहत अनुसूचित प्रक्रियाओं SCHED_FIFOया SCHED_RRरेंज में एक स्थिर प्राथमिकता हो सकता है 1करने के लिए 99(99 सबसे अधिक है)।

sys_sched_get_priority_max( )नियमित रिटर्न प्रक्रिया के स्थिर प्राथमिकता है, यह रिटर्न 0गैर वास्तविक समय प्रक्रियाओं के लिए।

गैर-वास्तविक समय अनुप्रयोगों के लिए गतिशील प्राथमिकता का उपयोग किया जाता है।

सभी वास्तविक समय की प्रक्रियाएं सामान्य प्रक्रियाओं की तुलना में उच्च प्राथमिकता पर होती हैं। POSIX के अनुसार लिनक्स वास्तविक समय की प्राथमिकताओं को लागू करता है। नीचे दिए गए ग्राफ़ में इस बात का विवरण दिया जा सकता है कि प्रक्रियाएँ उनकी प्राथमिकताओं के साथ कैसे निर्धारित हैं।

HIGH PRIORITY – - – - – > – - – - – > – - – - – > – - – - – > – - – – LEAST PRIORITY
……..real time priority (static priority)…….| …. nice value (dynamic priority) …..
99 ……………………….. 50 ……………………… 1 | -20 …….. -10 …….. 0 …….. 10 ……. 19

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

ps -e -o class,rtprio,pri,nice,cmd | grep watchdog

यह उपरोक्त कमांड का आउटपुट है। जैसा कि हम देख सकते हैं कि रीयलटाइम प्राथमिकता 99 है जो सर्वोच्च संभव प्राथमिकता है।

FF      99 139   - [watchdog/0]
FF      99 139   - [watchdog/1]
TS       -  21   0 grep watchdog

इसलिए मेरी समझ के अनुसार वास्तविक समय प्राथमिकता 99 का अधिकतम मूल्य ले सकती है और इसलिए इस पर कोई अच्छा मूल्य नहीं हो सकता है। यही कारण है कि, हमें वॉचडॉग और अन्य सिस्टम प्रक्रियाओं के लिए अच्छा आउटपुट मिलता है।

संदर्भ

http://oreilly.com/catalog/linuxkernel/chapter/ch10.html http://atipaday.wordpress.com/2008/08/19/atad-21-linux-process-priority-range/

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