लिनक्स में समय निर्धारण की प्रक्रिया


24

मैं कुछ समयबद्धन अवधारणाओं को सीख रहा हूं। वर्तमान में मेरी समझ अभी तक नीचे है।

  • वास्तविक समय प्रक्रियाएं और गैर वास्तविक समय प्रक्रियाएं होती हैं।
  • गैर वास्तविक समय प्रक्रियाओं niceमें -20 से +20 की सीमा में उनकी प्राथमिकता के लिए मान हो सकते हैं । उच्च सकारात्मक मूल्य इंगित करता है कि प्रक्रिया की प्राथमिकता कम है।
  • वास्तविक समय प्रक्रियाओं में एक अच्छा मूल्य होगा -जैसा कि इस उत्तर में बताया गया है । यह मुख्य रूप से है क्योंकि वास्तविक समय प्रक्रियाओं में गैर वास्तविक समय प्रक्रियाओं की तुलना में उच्च प्राथमिकताएं होती हैं और सुंदरता मूल्य उन पर लागू नहीं होते हैं।
  • अब, मैं chrtएक प्रक्रिया की वास्तविक समय विशेषताओं को देखने के लिए उपयोग कर सकता हूं ।

वास्तविक समय प्रक्रिया के लिए, chrtआउटपुट देता है,

chrt -p 5
pid 5's current scheduling policy: SCHED_FIFO
pid 5's current scheduling priority: 99

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

अब, एक गैर वास्तविक समय प्रक्रिया के लिए, chrtआउटपुट देता है,

chrt -p 22383
pid 22383's current scheduling policy: SCHED_OTHER
pid 22383's current scheduling priority: 0

जैसा कि हम 22383 प्रक्रिया के लिए देख सकते हैं , प्राथमिकता 0 है और शेड्यूलिंग नीति है SCHED_OTHER

प्रशन

  1. क्या मेरे लिए किसी भी प्रक्रिया को वास्तविक समय प्रक्रिया के रूप में बनाना संभव है?
  2. क्या SCHED_OTHERगैर-वास्तविक समय प्रक्रिया के अलावा कुछ अन्य शेड्यूलिंग एल्गोरिदम को सेट करना मेरे लिए संभव है?
  3. से यहाँ , मैं यह भी देख रहा के रूप में एक चल प्रक्रिया के लिए विशेषता को संशोधित कर सकता है,

    chrt -p prio pid
    

    इसके अलावा, मुझे लगता है chrt -mकि मुझे शेड्यूलिंग एल्गोरिदम की सूची दी गई है। कमांड मुझे आउटपुट के रूप में देता है,

    SCHED_OTHER min/max priority    : 0/0
    SCHED_FIFO min/max priority     : 1/99
    SCHED_RR min/max priority       : 1/99
    SCHED_BATCH min/max priority    : 0/0
    SCHED_IDLE min/max priority     : 0/0
    

    अब, जैसा कि ऊपर सुझाव दिया गया है, अगर मैं सेट chrt -p 55 22383करता हूं कि किस एल्गोरिथ्म का उपयोग किया जाएगा?

जवाबों:


19

प्रश्न 1

उपयोगकर्ता के लिए एक प्रक्रिया के लिए वास्तविक समय प्राथमिकता का उपयोग करना संभव है। यह कॉन्फ़िगरेशन /etc/security/limits.confफ़ाइल से सेट किया जा सकता है । मुझे उस फाइल में नीचे दी गई सामग्री दिखाई दे रही है।

# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain>        <type>  <item>  <value>

यदि हम आइटम अनुभाग की जांच करते हैं, तो हम नीचे दी गई प्रविष्टि को देखते हैं जो उपयोगकर्ताओं के लिए वास्तविक समय प्राथमिकता निर्धारित करने में सक्षम है।

#        - rtprio - max realtime priority

प्रश्न 2 और प्रश्न 3

शेड्यूलिंग नीति सेट करने के लिए SCHED_FIFO, दर्ज करें:

chrt -f -p [1..99] {pid}

शेड्यूलिंग नीति सेट करने के लिए SCHED_RR, दर्ज करें:

chrt -r -p [1..99] {pid}

तो प्रश्न 3 का उत्तर देने के लिए, हमें शेड्यूलिंग एल्गोरिदम को उपलब्ध chrt -mकमांड और प्राथमिकताओं का सत्यापन करना चाहिए और फिर किसी भी शेड्यूलिंग एल्गोरिदम का उपयोग करना चाहिए जो आपकी आवश्यकता के अनुसार हो। विभिन्न प्राथमिकताओं को निर्धारित करने के लिए, हम ऊपर दिए गए आदेशों का उपयोग कर सकते हैं।

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