संक्षिप्त जवाब
पीआर प्राथमिकता स्तर है। पीआर जितना कम होगा, प्रक्रिया की प्राथमिकता उतनी अधिक होगी।
पीआर की गणना निम्नानुसार की जाती है:
- सामान्य प्रक्रियाओं के लिए: PR = 20 + NI (NI अच्छा है और -20 से 19 तक है)
- वास्तविक समय प्रक्रियाओं के लिए: PR = - 1 - real_time_priority
(real_time_priority 1 से 99 तक होती है)
लंबा जवाब
2 प्रकार की प्रक्रियाएं हैं, सामान्य वाले और वास्तविक समय
सामान्य लोगों के लिए (और केवल उन लोगों के लिए), अच्छा इस प्रकार लगाया जाता है:
अच्छा
"निकनेस" स्केल -20 से 19 तक जाता है, जबकि -20 सर्वोच्च प्राथमिकता और 19 सबसे कम प्राथमिकता है। प्राथमिकता स्तर की गणना निम्न प्रकार से की जाती है:
पीआर = 20 + एनआई
जहां NI अच्छा स्तर है और PR प्राथमिकता स्तर है। इसलिए, जैसा कि हम देख सकते हैं, -20 वास्तव में 0 में मैप करते हैं, जबकि 19 मैप्स 39 तक।
डिफ़ॉल्ट रूप से, एक प्रोग्राम अच्छा मान 0 है, लेकिन रूट उपयोगकर्ता के लिए निम्नलिखित प्रोग्राम का उपयोग करके निर्दिष्ट अच्छे मूल्य के साथ प्रोग्राम लॉन्च करना संभव है:
nice -n <nice_value> ./myProgram
रियल टाइम
हम और भी आगे बढ़ सकते थे। अच्छी प्राथमिकता वास्तव में उपयोगकर्ता कार्यक्रमों के लिए उपयोग की जाती है। जबकि UNIX / LINUX की समग्र प्राथमिकता में 140 मान हैं, अच्छा मूल्य प्रक्रिया को सीमा के अंतिम भाग (100 से 139 तक) में मैप करने में सक्षम बनाता है। यह समीकरण 0 से 99 तक पहुंच से बाहर हो जाता है जो एक नकारात्मक पीआर स्तर (-100 से -1) के अनुरूप होगा। उन मूल्यों तक पहुंचने में सक्षम होने के लिए, प्रक्रिया को "वास्तविक समय" कहा जाना चाहिए।
LINUX वातावरण में 5 शेड्यूलिंग नीतियाँ हैं जिन्हें निम्न आदेश के साथ प्रदर्शित किया जा सकता है:
chrt -m
जो निम्नलिखित सूची दिखाएगा:
1. SCHED_OTHER the standard round-robin time-sharing policy
2. SCHED_BATCH for "batch" style execution of processes
3. SCHED_IDLE for running very low priority background jobs.
4. SCHED_FIFO a first-in, first-out policy
5. SCHED_RR a round-robin policy
शेड्यूलिंग प्रक्रियाओं को 2 समूहों में विभाजित किया जा सकता है, सामान्य समय-निर्धारण नीतियां (1 से 3) और वास्तविक समय निर्धारण नीतियां (4 और 5)। वास्तविक समय प्रक्रियाओं में हमेशा सामान्य प्रक्रियाओं पर प्राथमिकता होगी। निम्न आदेश का उपयोग करके एक वास्तविक समय प्रक्रिया को बुलाया जा सकता है (उदाहरण यह है कि SCHED_RR नीति कैसे घोषित की जाए):
chrt --rr <priority between 1-99> ./myProgram
वास्तविक समय प्रक्रिया के लिए पीआर मान प्राप्त करने के लिए निम्नलिखित समीकरण लागू किया जाता है:
पीआर = -1 - आरटी_पीयर
जहाँ rt_prior 1 और 99 के बीच प्राथमिकता से मेल खाता है। उस कारण से जिस प्रक्रिया में अन्य प्रक्रियाओं की तुलना में उच्च प्राथमिकता होगी, वह नंबर 99 के साथ बुलाया जाएगा।
यह ध्यान रखना महत्वपूर्ण है कि वास्तविक समय प्रक्रियाओं के लिए, अच्छे मूल्य का उपयोग नहीं किया जाता है।
एक प्रक्रिया के वर्तमान "अच्छा" और पीआर मूल्य को देखने के लिए निम्नलिखित कमांड निष्पादित किया जा सकता है:
top
जो निम्न आउटपुट दिखाता है:
चित्र में पीआर और एनआई मान प्रदर्शित किए जाते हैं। पीआर मूल्य -51 के साथ प्रक्रिया को नोट करना अच्छा है जो वास्तविक समय मूल्य से मेल खाती है। कुछ प्रक्रियाएँ ऐसी भी हैं जिनका PR मान "rt" कहा जाता है। यह मान वास्तव में -100 के PR मान से मेल खाता है।
niceness
नकारात्मक प्राथमिकता देने के लिए BUT का उपयोग किया जा सकता है ताकिniceness
उच्च प्राथमिकता वाले कार्यों के रास्ते से बाहर निकल जाए? (यानी यह किया जा रहा हैnice
और अन्य संसाधनों का उपयोग कर रहे हैं? या यह सिर्फ मुझे भ्रमित किया?